JavaScript
Uripake Bootstrap kanthi plugin JavaScript opsional sing dibangun ing jQuery. Sinau babagan saben plugin, data lan opsi API terprogram, lan liya-liyane.
Individu utawa kompilasi
Plugins bisa dilebokake kanthi individu (nggunakake Bootstrap individu js/dist/*.js
), utawa kabeh bebarengan nggunakake bootstrap.js
utawa minified bootstrap.min.js
(ora kalebu loro-lorone).
Yen sampeyan nggunakake bundler (Webpack, Rollup…), sampeyan bisa nggunakake /js/dist/*.js
file sing siap UMD.
Ketergantungan
Sawetara plugin lan komponen CSS gumantung ing plugin liyane. Yen sampeyan nyakup plugin kanthi individu, priksa manawa sampeyan mriksa dependensi kasebut ing dokumen kasebut. Uga elinga yen kabeh plugin gumantung ing jQuery (iki tegese jQuery kudu dilebokake sadurunge file plugin). Hubungi kitapackage.json
kanggo ndeleng versi jQuery sing didhukung.
Kita dropdowns, popovers lan tooltips uga gumantung ing Popper.js .
Atribut data
Saklawasé kabeh plugin Bootstrap bisa diaktifake lan dikonfigurasi liwat HTML kanthi atribut data (cara sing disenengi kanggo nggunakake fungsi JavaScript). Priksa manawa sampeyan mung nggunakake siji set atribut data ing siji unsur (contone, sampeyan ora bisa micu tooltip lan modal saka tombol sing padha.)
Nanging, ing sawetara kahanan bisa uga dikarepake kanggo mateni fungsi iki. Kanggo mateni API atribut data, copot kabeh acara ing spasi jeneng dokumen data-api
kaya mangkene:
$(document).off('.data-api')
Utawa, kanggo ngarahake plugin tartamtu, mung lebokake jeneng plugin kasebut minangka ruang jeneng bebarengan karo ruang jeneng data-api kaya iki:
$(document).off('.alert.data-api')
Pamilih
Saiki kanggo takon unsur DOM, kita nggunakake metode asli querySelector
lan querySelectorAll
kanggo alasan kinerja, dadi sampeyan kudu nggunakake pamilih sing sah . Yen sampeyan nggunakake pamilih khusus, contone: collapse:Example
dadi manawa kanggo uwal saka wong-wong mau.
Acara
Bootstrap nyedhiyakake acara khusus kanggo umume tumindak unik plugin. Umumé, iki teka ing wangun infinitive lan past participle - ngendi infinitive (ex. show
) dipicu ing wiwitan acara, lan past participle wangun (ex. shown
) dipicu nalika completion saka tumindak.
Kabeh acara infinitive nyedhiyakake preventDefault()
fungsi. Iki menehi kemampuan kanggo mungkasi eksekusi tumindak sadurunge diwiwiti. Mbalik palsu saka panangan acara uga bakal nelpon kanthi otomatis preventDefault()
.
$('#myModal').on('show.bs.modal', function (event) {
if (!data) {
return event.preventDefault() // stops modal from being shown
}
})
Programmatic API
Kita uga pracaya sampeyan kudu bisa nggunakake kabeh plugin Bootstrap murni liwat JavaScript API. Kabeh API umum iku siji, cara chainable, lan bali koleksi tumindak marang.
$('.btn.danger').button('toggle').addClass('fat')
Kabeh cara kudu nampa obyek opsional, senar sing ngarahake metode tartamtu, utawa ora ana apa-apa (sing miwiti plugin kanthi prilaku standar):
$('#myModal').modal() // initialized with defaults
$('#myModal').modal({ keyboard: false }) // initialized with no keyboard
$('#myModal').modal('show') // initializes and invokes show immediately
Saben plugin uga mbukak konstruktor mentah ing Constructor
properti: $.fn.popover.Constructor
. Yen sampeyan pengin njaluk conto plugin tartamtu, njupuk langsung saka unsur: $('[rel="popover"]').data('popover')
.
Fungsi lan transisi asinkron
Kabeh cara API terprogram ora sinkron lan bali menyang panelpon yen transisi diwiwiti nanging sadurunge rampung .
Kanggo nglakokake tumindak sawise transisi rampung, sampeyan bisa ngrungokake acara sing cocog.
$('#myCollapse').on('shown.bs.collapse', function (event) {
// Action to execute once the collapsible area is expanded
})
Kajaba iku, telpon metode ing komponen transisi bakal diabaikan .
$('#myCarousel').on('slid.bs.carousel', function (event) {
$('#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 !!
Setelan gawan
Sampeyan bisa ngganti setelan gawan kanggo plugin kanthi ngowahi Constructor.Default
obyek plugin:
// changes default for the modal plugin's `keyboard` option to false
$.fn.modal.Constructor.Default.keyboard = false
Ora ana konflik
Kadhangkala perlu nggunakake plugin Bootstrap karo kerangka UI liyane. Ing kahanan kasebut, tabrakan spasi jeneng kadhangkala bisa kedadeyan. Yen kedadeyan kasebut, sampeyan bisa nelpon .noConflict
plugin sing pengin dibalekake regane.
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
Nomer versi
Versi saben plugin jQuery Bootstrap bisa diakses liwat VERSION
properti konstruktor plugin kasebut. Contone, kanggo plugin tooltip:
$.fn.tooltip.Constructor.VERSION // => "4.6.2"
Ora ana fallbacks khusus nalika JavaScript dipateni
Plugin Bootstrap ora mundur kanthi apik nalika JavaScript dipateni. Yen sampeyan peduli karo pengalaman pangguna ing kasus iki, gunakake <noscript>
kanggo nerangake kahanan kasebut (lan carane ngaktifake JavaScript maneh) menyang pangguna, lan / utawa nambah fallbacks khusus sampeyan dhewe.
Pustaka pihak katelu
Bootstrap ora resmi ndhukung perpustakaan JavaScript pihak katelu kaya Prototype utawa jQuery UI. Senadyan .noConflict
acara lan namespaced, bisa uga ana masalah kompatibilitas sing kudu didandani dhewe.
Util
Kabeh file JavaScript Bootstrap gumantung util.js
lan kudu dilebokake bebarengan karo file JavaScript liyane. Yen sampeyan nggunakake compiled (utawa minified) bootstrap.js
, ora perlu kanggo kalebu iki-wis ana.
util.js
kalebu fungsi sarana lan helper dhasar kanggo transitionEnd
acara uga minangka emulator transisi CSS. Iki digunakake dening plugin liyane kanggo mriksa dhukungan transisi CSS lan kanggo nyekel transisi gantung.
Sanitizer
Tooltips lan Popovers nggunakake sanitizer sing dibangun kanggo ngresiki opsi sing nampa HTML.
Nilai standar whiteList
yaiku ing ngisor iki:
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
var DefaultWhitelist = {
// Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
a: ['target', 'href', 'title', 'rel'],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
}
Yen sampeyan pengin nambah nilai anyar menyang standar iki, whiteList
sampeyan bisa nindakake ing ngisor iki:
var myDefaultWhiteList = $.fn.tooltip.Constructor.Default.whiteList
// To allow table elements
myDefaultWhiteList.table = []
// To allow td elements and data-option attributes on td elements
myDefaultWhiteList.td = ['data-option']
// You can push your custom regex to validate your attributes.
// Be careful about your regular expressions being too lax
var myCustomRegex = /^data-my-app-[\w-]+/
myDefaultWhiteList['*'].push(myCustomRegex)
Yen sampeyan pengin ngliwati sanitizer amarga luwih seneng nggunakake perpustakaan khusus, contone DOMPurify , sampeyan kudu nindakake ing ngisor iki:
$('#yourTooltip').tooltip({
sanitizeFn: function (content) {
return DOMPurify.sanitize(content)
}
})