JavaScript
Вдъхнете живот на Bootstrap с нашите незадължителни JavaScript добавки, изградени на jQuery. Научете за всеки плъгин, нашите опции за данни и програмен API и др.
Добавките могат да бъдат включени поотделно (като се използват отделните *.js
файлове на Bootstrap) или всички наведнъж, като се използва bootstrap.js
или минимизиран bootstrap.min.js
(не включвайте и двете).
Някои добавки и CSS компоненти зависят от други добавки. Ако включвате плъгини поотделно, не забравяйте да проверите за тези зависимости в документите. Също така имайте предвид, че всички добавки зависят от jQuery (това означава, че jQuery трябва да бъде включен преди файловете на добавките). Консултирайте се с насpackage.json
, за да видите кои версии на jQuery се поддържат.
Нашите падащи менюта, изскачащи менюта и подсказки също зависят от Popper.js .
Почти всички приставки за Bootstrap могат да бъдат активирани и конфигурирани само чрез HTML с атрибути на данни (предпочитаният ни начин за използване на функционалността на JavaScript). Уверете се, че използвате само един набор от атрибути на данни за един елемент (напр. не можете да задействате подсказка и модал от един и същ бутон.)
В някои ситуации обаче може да е желателно да деактивирате тази функция. За да деактивирате API на атрибута за данни, развържете всички събития в пространството от имена на документа по data-api
следния начин:
$(document).off('.data-api')
Като алтернатива, за да се насочите към конкретен плъгин, просто включете името на плъгина като пространство от имена заедно с пространството от имена на API за данни по този начин:
$(document).off('.alert.data-api')
Bootstrap предоставя персонализирани събития за уникалните действия на повечето добавки. Обикновено те идват във форма на инфинитив и минало причастие - където инфинитивът (напр. show
) се задейства в началото на събитие, а неговата форма на минало причастие (напр. shown
) се задейства при завършване на действие.
Всички безкрайни събития осигуряват preventDefault()
функционалност. Това осигурява възможност за спиране на изпълнението на действие, преди то да започне. Връщането на false от манипулатор на събития също автоматично ще извика preventDefault()
.
$('#myModal').on('show.bs.modal', function (e) {
if (!data) return e.preventDefault() // stops modal from being shown
})
Също така вярваме, че трябва да можете да използвате всички приставки за Bootstrap само чрез JavaScript API. Всички публични API са единични, верижни методи и връщат колекцията, по която са действали.
$('.btn.danger').button('toggle').addClass('fat')
Всички методи трябва да приемат незадължителен обект с опции, низ, който е насочен към определен метод, или нищо (което инициира плъгин с поведение по подразбиране):
$('#myModal').modal() // initialized with defaults
$('#myModal').modal({ keyboard: false }) // initialized with no keyboard
$('#myModal').modal('show') // initializes and invokes show immediately
Всеки плъгин също излага своя необработен конструктор на Constructor
свойство: $.fn.popover.Constructor
. Ако искате да получите конкретен екземпляр на приставка, извлечете го директно от елемент: $('[rel="popover"]').data('popover')
.
Всички програмни API методи са асинхронни и се връщат към извикващия, след като преходът започне, но преди да приключи .
За да изпълните действие, след като преходът приключи, можете да слушате съответното събитие.
$('#myCollapse').on('shown.bs.collapse', function (e) {
// Action to execute once the collapsible area is expanded
})
Освен това извикване на метод на преходен компонент ще бъде игнорирано .
$('#myCarousel').on('slid.bs.carousel', function (e) {
$('#myCarousel').carousel('2') // Will slide to the slide 2 as soon as the transition to slide 1 is finished
})
$('#myCarousel').carousel('1') // Will start sliding to the slide 1 and returns to the caller
$('#myCarousel').carousel('2') // !! Will be ignored, as the transition to the slide 1 is not finished !!
Можете да промените настройките по подразбиране за плъгин, като промените Constructor.Default
обекта на плъгина:
$.fn.modal.Constructor.Default.keyboard = false // changes default for the modal plugin's `keyboard` option to false
Понякога е необходимо да използвате плъгини Bootstrap с други UI рамки. При тези обстоятелства понякога могат да възникнат сблъсъци в пространството на имена. Ако това се случи, можете да извикате .noConflict
приставката, на която искате да върнете стойността.
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
Версията на всеки от jQuery плъгините на Bootstrap може да бъде достъпна чрез VERSION
свойството на конструктора на плъгина. Например за приставката за подсказки:
$.fn.tooltip.Constructor.VERSION // => "4.0.0"
Приставките на Bootstrap не се връщат особено грациозно, когато JavaScript е деактивиран. Ако ви е грижа за потребителското изживяване в този случай, използвайте, <noscript>
за да обясните ситуацията (и как да активирате отново JavaScript) на вашите потребители и/или добавете свои собствени персонализирани резервни варианти.
Библиотеки на трети страни
Bootstrap не поддържа официално JavaScript библиотеки на трети страни като Prototype или jQuery UI. Въпреки .noConflict
събитията и пространството от имена, може да има проблеми със съвместимостта, които трябва да коригирате сами.
Всички JavaScript файлове на Bootstrap зависят util.js
и трябва да бъдат включени заедно с другите JavaScript файлове. Ако използвате компилираното (или минимизираното) bootstrap.js
, няма нужда да включвате това – то вече е там.
util.js
включва помощни функции и основен помощник за transitionEnd
събития, както и CSS емулатор за преход. Използва се от другите плъгини за проверка за поддръжка на CSS преходи и за улавяне на висящи преходи.