JavaScript
Hirupkeun Bootstrap sareng plugins JavaScript pilihan urang. Diajar ngeunaan unggal plugin, data kami sareng pilihan API programmatic, sareng seueur deui.
Individu atawa disusun
Plugins tiasa dilebetkeun masing-masing (nganggo individu Bootstrap js/dist/*.js
), atanapi sadayana sakaligus nganggo bootstrap.js
atanapi anu diminified bootstrap.min.js
(henteu kalebet duanana).
Upami anjeun nganggo bundler (Webpack, Rollup…), anjeun tiasa nganggo /js/dist/*.js
file anu siap UMD.
Ngagunakeun Bootstrap salaku modul a
Urang nyadiakeun versi Bootstrap diwangun salaku ESM
( bootstrap.esm.js
jeung bootstrap.esm.min.js
) nu ngidinan Anjeun pikeun make Bootstrap salaku modul dina panyungsi anjeun, lamun panyungsi anjeun sasaran ngarojong eta .
<script type="module">
import { Toast } from 'bootstrap.esm.min.js'
Array.from(document.querySelectorAll('.toast'))
.forEach(toastNode => new Toast(toastNode))
</script>
plugins sauyunan
Kusabab keterbatasan browser, sababaraha plugins kami, nyaéta Dropdown, Tooltip sareng Popover plugins, teu tiasa dianggo dina <script>
tag sareng module
jinis sabab gumantung kana Popper. Kanggo inpo nu leuwih lengkep tentang masalah tingali di dieu .
Depéndensi
Sababaraha plugins sareng komponén CSS gumantung kana plugins séjén. Upami anjeun ngalebetkeun plugin masing-masing, pastikeun pikeun pariksa katergantungan ieu dina dokumén.
dropdowns kami, popovers na tooltips ogé gumantung kana Popper .
Masih hoyong nganggo jQuery? Ieu mungkin!
Bootstrap 5 dirancang pikeun dipaké tanpa jQuery, tapi masih mungkin ngagunakeun komponén urang jeung jQuery. Lamun Bootstrap ngadeteksi jQuery
dina window
obyék éta bakal nambahan sakabéh komponén urang dina Sistim plugin jQuery urang; ieu hartina anjeun bakal bisa ngalakukeun $('[data-bs-toggle="tooltip"]').tooltip()
pikeun ngaktipkeun tooltips. Sami lumaku pikeun komponén urang lianna.
Atribut data
Ampir kabéh plugins Bootstrap bisa diaktipkeun jeung ngonpigurasi ngaliwatan HTML nyalira kalayan atribut data (cara pikaresep urang ngagunakeun fungsionalitas JavaScript). Pastikeun ngan ukur nganggo hiji set atribut data dina hiji unsur (contona, anjeun moal tiasa memicu tooltip sareng modal tina tombol anu sami.)
Pamilih
Ayeuna pikeun naroskeun elemen DOM kami nganggo metode asli querySelector
sareng querySelectorAll
alesan kinerja, janten anjeun kedah nganggo pamilih anu sah . Upami anjeun nganggo pamilih khusus, contona: collapse:Example
pastikeun kabur aranjeunna.
Kajadian
Bootstrap nyayogikeun acara khusus pikeun kalolobaan tindakan unik plugins. Sacara umum, ieu datangna dina bentuk participle infinitive jeung kaliwat - dimana infinitive (ex. show
) dipicu dina mimiti hiji acara, sarta formulir participle kaliwat na (ex. shown
) dipicu nalika parantosan hiji aksi.
Kabéh acara infinitive nyadiakeun preventDefault()
fungsionalitas. Ieu nyadiakeun kamampuhan pikeun ngeureunkeun palaksanaan hiji aksi saméméh dimimitian. Balik palsu ti pawang acara ogé bakal otomatis nelepon preventDefault()
.
var myModal = document.getElementById('myModal')
myModal.addEventListener('show.bs.modal', function (event) {
if (!data) {
return event.preventDefault() // stops modal from being shown
}
})
acara jQuery
Bootstrap bakal ngadeteksi jQuery upami jQuery
aya dina window
obyék sareng teu aya data-bs-no-jquery
atribut anu dipasang dina <body>
. Lamun jQuery kapanggih, Bootstrap bakal emit acara berkat sistem acara jQuery urang. Janten upami anjeun hoyong ngadangukeun acara Bootstrap, anjeun kedah nganggo metode jQuery ( .on
, .one
) tibatan addEventListener
.
$('#myTab a').on('shown.bs.tab', function () {
// do something...
})
Programmatic API
Sadaya konstruktor nampi pilihan obyék atanapi henteu nanaon (anu ngamimitian plugin kalayan paripolah standarna):
var myModalEl = document.getElementById('myModal')
var modal = new bootstrap.Modal(myModalEl) // initialized with defaults
var modal = new bootstrap.Modal(myModalEl, { keyboard: false }) // initialized with no keyboard
Upami anjeun hoyong kéngingkeun conto plugin khusus, unggal plugin ngungkabkeun getInstance
metodeu. Pikeun meunangkeun eta langsung ti unsur, ngalakukeun ieu: bootstrap.Popover.getInstance(myPopoverEl)
.
pamilih CSS di konstruktor
Anjeun oge bisa make pamilih CSS salaku argumen kahiji tinimbang unsur DOM pikeun initialize plugin nu. Ayeuna unsur pikeun plugin kapanggih ku querySelector
métode saprak plugins kami ngarojong hiji unsur tunggal.
var modal = new bootstrap.Modal('#myModal')
var dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
Fungsi Asynchronous jeung transisi
Sadaya metodeu API programmatic henteu sinkron sareng uih deui ka panelepon saatos transisi dimimitian tapi sateuacan réngsé .
Pikeun ngaéksekusi tindakan saatos transisi parantos réngsé, anjeun tiasa ngadangukeun acara anu saluyu.
var myCollapseEl = document.getElementById('myCollapse')
myCollapseEl.addEventListener('shown.bs.collapse', function (event) {
// Action to execute once the collapsible area is expanded
})
Sajaba ti éta, panggero metoda dina komponén transisi bakal dipaliré .
var myCarouselEl = document.getElementById('myCarousel')
var carousel = bootstrap.Carousel.getInstance(myCarouselEl) // Retrieve a Carousel instance
myCarouselEl.addEventListener('slid.bs.carousel', function (event) {
carousel.to('2') // Will slide to the slide 2 as soon as the transition to slide 1 is finished
})
carousel.to('1') // Will start sliding to the slide 1 and returns to the caller
carousel.to('2') // !! Will be ignored, as the transition to the slide 1 is not finished !!
Setélan standar
Anjeun tiasa ngarobih setélan standar pikeun plugin ku ngarobih Constructor.Default
obyék plugin:
// changes default for the modal plugin's `keyboard` option to false
bootstrap.Modal.Default.keyboard = false
Henteu aya konflik (ngan upami anjeun nganggo jQuery)
Kadang-kadang perlu ngagunakeun plugins Bootstrap sareng kerangka UI anu sanés. Dina kaayaan ieu, tabrakan ngaranspasi kadang bisa lumangsung. Upami ieu kajantenan, anjeun tiasa nelepon .noConflict
kana plugin anu anjeun hoyong balikkeun nilaina.
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
angka Vérsi
Versi masing-masing plugins Bootstrap tiasa diaksés ngalangkungan VERSION
hak milik konstruktor plugin. Contona, pikeun plugin tooltip:
bootstrap.Tooltip.VERSION // => "5.1.3"
Taya fallbacks husus nalika JavaScript ditumpurkeun
Plugin Bootstrap henteu mundur sacara khusus nalika JavaScript ditumpurkeun. Upami anjeun paduli kana pangalaman pangguna dina hal ieu, paké <noscript>
pikeun ngajelaskeun kaayaan (sareng kumaha cara ngaktipkeun deui JavaScript) ka pangguna anjeun, sareng / atanapi tambahkeun fallbacks adat anjeun sorangan.
Perpustakaan pihak katilu
Bootstrap henteu sacara resmi ngadukung perpustakaan JavaScript pihak katilu sapertos Prototype atanapi jQuery UI. Sanaos .noConflict
acara sareng namespaced, meureun aya masalah kasaluyuan anu anjeun kedah ngalereskeun nyalira.
Sanitizer
Tooltips sareng Popovers nganggo sanitizer anu diwangun pikeun ngabersihan pilihan anu nampi HTML.
Nilai standar allowList
nyaéta kieu:
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
var DefaultAllowlist = {
// 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: []
}
Upami anjeun hoyong nambihan nilai anyar kana standar ieu allowList
anjeun tiasa ngalakukeun ieu:
var myDefaultAllowList = bootstrap.Tooltip.Default.allowList
// To allow table elements
myDefaultAllowList.table = []
// To allow td elements and data-bs-option attributes on td elements
myDefaultAllowList.td = ['data-bs-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-]+/
myDefaultAllowList['*'].push(myCustomRegex)
Upami anjeun hoyong ngalangkungan sanitizer kami sabab anjeun langkung resep ngagunakeun perpustakaan khusus, contona DOMPurify , anjeun kedah ngalakukeun ieu:
var yourTooltipEl = document.getElementById('yourTooltip')
var tooltip = new bootstrap.Tooltip(yourTooltipEl, {
sanitizeFn: function (content) {
return DOMPurify.sanitize(content)
}
})