JavaScript
Ampahafantaro ny Bootstrap miaraka amin'ireo plugins JavaScript azo atao. Mianara momba ny plugin tsirairay, ny angonay sy ny safidy API programmatika, ary ny maro hafa.
Olona tsirairay na natambatra
Ny plugins dia azo ampidirina tsirairay (mampiasa ny Bootstrap's individual js/dist/*.js
), na miaraka amin'ny fampiasana bootstrap.js
na ny minified bootstrap.min.js
(aza ampidirina izy roa).
Raha mampiasa bundler ianao (Webpack, Rollup…), azonao atao ny mampiasa /js/dist/*.js
rakitra efa vonona UMD.
Mampiasa Bootstrap ho modely
Manome dikan-tenin'ny Bootstrap naorina ho ESM
( bootstrap.esm.js
ary bootstrap.esm.min.js
) izahay izay ahafahanao mampiasa Bootstrap ho maody ao amin'ny mpitety tranonkalanao, raha manohana azy io ny navigateur kendrenao .
<script type="module">
import { Toast } from 'bootstrap.esm.min.js'
Array.from(document.querySelectorAll('.toast'))
.forEach(toastNode => new Toast(toastNode))
</script>
Plugins tsy mifanaraka
Noho ny fetran'ny navigateur, ny sasany amin'ireo plugins, dia ny Dropdown, Tooltip ary Popover, dia tsy azo ampiasaina amin'ny <script>
marika misy module
karazana satria miankina amin'ny Popper izy ireo. Raha mila fanazavana fanampiny momba ilay olana dia jereo eto .
miankina
Ny plugins sasany sy ny singa CSS dia miankina amin'ny plugins hafa. Raha ampidirinao tsirairay ny plugins, ataovy azo antoka ny manamarina ireo fiankinan-doha ireo ao amin'ny doka.
Miankina amin'ny Popper ihany koa ny fidina, ny popover ary ny toro-làlanay .
Mbola te hampiasa jQuery ve ianao? Azo atao izany!
Ny Bootstrap 5 dia natao hampiasaina tsy misy jQuery, saingy mbola azo atao ny mampiasa ny singantsika amin'ny jQuery. Raha hitan'i Bootstrap jQuery
ao amin'ilay window
zavatra dia hanampy ny singa rehetra ao amin'ny rafitra plugin an'ny jQuery; midika izany fa azonao atao $('[data-bs-toggle="tooltip"]').tooltip()
ny mamela ny toro-làlana. Toy izany koa ny singa hafa eto amintsika.
Data attributes
Saika ny plugins Bootstrap rehetra dia azo alefa sy amboarina amin'ny alàlan'ny HTML irery miaraka amin'ny toetran'ny data (fomba fampiasantsika JavaScript). Ataovy azo antoka fa tsy mampiasa afa-tsy andiana toetra angon-drakitra amin'ny singa tokana ianao (ohatra, tsy afaka manetsika fitaovana sy mody amin'ny bokotra iray ihany ianao.)
Selectors
Amin'izao fotoana izao raha manontany singa DOM izahay dia mampiasa ny fomba amam-panao querySelector
ary querySelectorAll
noho ny antony fampiasa, noho izany dia tsy maintsy mampiasa mpifidy manan-kery ianao . Raha mampiasa mpifidy manokana ianao, ohatra: collapse:Example
ataovy izay handosirana azy ireo.
zava-mitranga
Bootstrap dia manome hetsika manokana ho an'ny ankamaroan'ny hetsika tokana ataon'ny plugins. Amin'ny ankapobeny, ireo dia avy amin'ny endrika infinitive sy past participle - izay ny infinitive (ohatra. show
) dia mipoitra eo am-piandohan'ny hetsika iray, ary ny endrik'ilay matoanteny lasa (ex. shown
) dia mipoitra rehefa vita ny hetsika iray.
Ny hetsika infinitive rehetra dia manome preventDefault()
fiasa. Izany dia manome fahafahana hampiato ny fanatanterahana hetsika iray alohan'ny hanombohany. Ny fiverenana diso avy amin'ny mpitantana hetsika dia hiantso ho azy ihany koa preventDefault()
.
var myModal = document.getElementById('myModal')
myModal.addEventListener('show.bs.modal', function (event) {
if (!data) {
return event.preventDefault() // stops modal from being shown
}
})
hetsika jQuery
Bootstrap dia hamantatra ny jQuery raha jQuery
misy ao amin'ilay window
zavatra ary tsy misy data-bs-no-jquery
toetra napetraka amin'ny <body>
. Raha hita ny jQuery dia hamoaka hetsika ny Bootstrap noho ny rafitra hetsika jQuery. Ka raha te hihaino ny hetsika Bootstrap ianao dia tsy maintsy mampiasa ny fomba jQuery ( .on
, .one
) fa tsy addEventListener
.
$('#myTab a').on('shown.bs.tab', function () {
// do something...
})
Programmatic API
Ny mpanamboatra rehetra dia manaiky zavatra safidy azo atao na tsia (izay manomboka plugin miaraka amin'ny fitondrantena mahazatra azy):
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
Raha te hahazo ohatra plugin manokana ianao, ny plugin tsirairay dia mampiseho getInstance
fomba iray. Raha te haka azy mivantana avy amin'ny singa iray dia ataovy izao: bootstrap.Popover.getInstance(myPopoverEl)
.
CSS selectors amin'ny constructors
Azonao atao ihany koa ny mampiasa CSS selector ho tohan-kevitra voalohany fa tsy singa DOM hanombohana ny plugin. Amin'izao fotoana izao ny singa ho an'ny plugin dia hita amin'ny querySelector
fomba satria ny plugins dia manohana singa tokana ihany.
var modal = new bootstrap.Modal('#myModal')
var dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
Fampiasana asynchronous sy transitions
Ny fomba fiasa API programmatic rehetra dia asynchronous ary miverina amin'ny mpiantso raha vao manomboka ny tetezamita fa alohan'ny hifarana .
Mba hanatanterahana hetsika iray rehefa vita ny tetezamita dia azonao atao ny mihaino ny hetsika mifandraika amin'izany.
var myCollapseEl = document.getElementById('myCollapse')
myCollapseEl.addEventListener('shown.bs.collapse', function (event) {
// Action to execute once the collapsible area is expanded
})
Ho fanampin'izany dia tsy horaharahaina ny fiantsoana fomba amin'ny singa tetezamita .
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 !!
Fikirana Default
Azonao atao ny manova ny kinova default ho an'ny plugin iray amin'ny fanovana ny Constructor.Default
tanjon'ny plugin:
// changes default for the modal plugin's `keyboard` option to false
bootstrap.Modal.Default.keyboard = false
Tsy misy fifandirana (raha mampiasa jQuery ianao)
Indraindray dia ilaina ny mampiasa plugins Bootstrap miaraka amin'ny rafitra UI hafa. Amin'ireo toe-javatra ireo dia mety hitranga indraindray ny fifandonan'ny toeran'ny anarana. Raha mitranga izany dia azonao atao ny miantso .noConflict
ny plugin tianao hamerenana ny sandan'ny.
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
Laharana dikan-teny
Ny dikan'ny plugins Bootstrap tsirairay dia azo idirana amin'ny alàlan'ny VERSION
fananan'ny mpamorona ny plugin. Ohatra, ho an'ny plugin tooltip:
bootstrap.Tooltip.VERSION // => "5.0.2"
Tsy misy fiatoana manokana rehefa tsy mandeha ny JavaScript
Ny plugins Bootstrap dia tsy miverina amin'ny fomba tsara indrindra rehefa tsy mandeha ny JavaScript. Raha miraharaha ny traikefan'ny mpampiasa amin'ity tranga ity ianao dia ampiasao <noscript>
ny manazava ny toe-javatra (sy ny fomba famelomana indray ny JavaScript) amin'ny mpampiasa anao, ary/na ampio ny fianjeranao manokana.
Tranomboky an'ny antoko fahatelo
Bootstrap dia tsy manohana amin'ny fomba ofisialy ny tranomboky JavaScript an'ny antoko fahatelo toa ny Prototype na jQuery UI. Na .noConflict
dia eo aza ny zava-mitranga misy anarana, dia mety hisy olana amin'ny fifanarahana izay mila amboarinao irery.
Sanitizer
Ny Tooltips sy Popovers dia mampiasa ny fanadiovan-tenantsika mba hanadiovana ireo safidy manaiky HTML.
Ny allowList
sanda default dia ireto manaraka ireto:
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: []
}
Raha te-hanampy soatoavina vaovao amin'ity default ity allowList
ianao dia afaka manao izao manaraka izao:
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)
Raha te hiala amin'ny sanitizer anay ianao satria aleonao mampiasa tranomboky natokana, ohatra DOMPuify , dia tokony hanao izao manaraka izao ianao:
var yourTooltipEl = document.getElementById('yourTooltip')
var tooltip = new bootstrap.Tooltip(yourTooltipEl, {
sanitizeFn: function (content) {
return DOMPurify.sanitize(content)
}
})