JavaScript
Bi pêvekên me yên bijarte yên JavaScript-ê Bootstrap-ê bidin jiyîn. Li ser her pêvek, daneyên me û vebijarkên API-ya bernamekirî, û bêtir fêr bibin.
Kesane an berhevkirî
Pêvek dikarin bi rengek ferdî (bi ferdî ya Bootstrap bikar bînin js/dist/*.js
), an hemî bi yekcarî bikar bînin bootstrap.js
an jî kêm bikin bootstrap.min.js
(herduyan tê de nekin).
Ger hûn bundlerek bikar bînin (Webpack, Rollup…), hûn dikarin /js/dist/*.js
pelên ku UMD amade ne bikar bînin.
Bikaranîna Bootstrap wekî modulek
Em guhertoyek Bootstrap-ê ku wekî ESM
( bootstrap.esm.js
û bootstrap.esm.min.js
) hatî çêkirin peyda dikin ku destûrê dide te ku hûn Bootstrap-ê wekî modulek di geroka xwe de bikar bînin, ger gerokên we yên armanckirî piştgirî bikin .
<script type="module">
import { Toast } from 'bootstrap.esm.min.js'
Array.from(document.querySelectorAll('.toast'))
.forEach(toastNode => new Toast(toastNode))
</script>
Pêvekên hevgirtî
Ji ber tixûbên gerokê, hin pêvekên me, ango pêvekên Dropdown, Tooltip û Popover, nekarin di <script>
tagek bi module
celeb de werin bikar anîn ji ber ku ew bi Popper ve girêdayî ne. Ji bo bêtir agahdarî li ser pirsgirêkê li vir bibînin .
Dependencies
Hin pêvek û hêmanên CSS bi pêvekên din ve girêdayî ne. Ger hûn pêvekên kesane bi nav bikin, pê ewle bin ku hûn van girêdanan di belgeyan de kontrol bikin.
Daxistina me, popover û serişteyên amûran jî bi Popper ve girêdayî ne.
Hîn jî hûn dixwazin jQuery bikar bînin? Gengaz e!
Bootstrap 5 hatiye dîzaynkirin ku bêyî jQuery were bikar anîn, lê dîsa jî gengaz e ku em hêmanên xwe bi jQuery re bikar bînin. Ger Bootstrap di objektê de jQuery
bibînewindow
ew ê hemî pêkhateyên me di pergala pêveka jQuery de zêde bike; ev tê vê wateyê ku hûn ê bikaribin bikin $('[data-bs-toggle="tooltip"]').tooltip()
ku serişteyên amûran çalak bikin. Heman tişt ji bo pêkhateyên me yên din jî derbas dibe.
Taybetmendiyên daneyê
Hema hema hemî pêvekên Bootstrap dikarin tenê bi navgîniya HTML-ê ve bi taybetmendiyên daneyê ve werin çalak kirin û mîheng kirin (rêya meya bijarte ya karanîna fonksiyona JavaScriptê). Bawer bikin ku hûn tenê komek taybetmendiyên daneyê li ser hêmanek yekane bikar bînin (mînak, hûn nekarin ji heman bişkokê şîretek amûrek û modalek derxînin.)
Hilbijêr
Naha ji bo pirskirina hêmanên DOM-ê em rêbazên xwemalî querySelector
û querySelectorAll
ji ber sedemên performansê bikar tînin, ji ber vê yekê hûn neçar in ku hilbijêrên derbasdar bikar bînin . Heke hûn hilbijêrên taybetî bikar tînin, mînakî: collapse:Example
Bawer bikin ku ji wan birevin.
Events
Bootstrap ji bo çalakiyên yekta yên piraniya pêvekan bûyerên xwerû peyda dike. Bi gelemperî, ev bi rengek nebinavkirî û paşverû têne - ku di destpêka bûyerekê de nefsbiçûk (mînak. show
) di destpêka bûyerekê de, û forma wê ya dema borî (mînak. shown
) bi qedandina kirdeyekê tê derxistin.
Hemî bûyerên bêdawî preventDefault()
fonksiyonê peyda dikin. Ev şiyana rawestandina pêkanîna çalakiyek berî ku ew dest pê bike peyda dike. Vegerandina derewîn ji rêvekerek bûyerê dê bixweber jî bang preventDefault()
bike.
var myModal = document.getElementById('myModal')
myModal.addEventListener('show.bs.modal', function (event) {
if (!data) {
return event.preventDefault() // stops modal from being shown
}
})
bûyerên jQuery
Bootstrap dê jQuery-yê teşhîs bike heke jQuery
di window
objektê de hebe û li ser taybetmendiyek nehatiye data-bs-no-jquery
danîn <body>
. Ger jQuery were dîtin, Bootstrap dê bi saya pergala bûyera jQuery bûyeran derxe. Ji ber vê yekê heke hûn dixwazin guh bidin bûyerên Bootstrap, hûn neçar in ku li şûna jQuery rêbazên ( .on
, .one
) bikar bînin addEventListener
.
$('#myTab a').on('shown.bs.tab', function () {
// do something...
})
API bername
Hemî çêker hêmanek vebijarkî an tiştek qebûl dikin (ya ku pêvekek bi tevgera xweya xwerû dest pê dike):
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
Heke hûn dixwazin mînakek pêvekek taybetî bistînin, her pêvek getInstance
rêbazek eşkere dike. Ji bo ku hûn wê rasterast ji hêmanek bistînin, vê yekê bikin bootstrap.Popover.getInstance(myPopoverEl)
:.
Hilbijêrên CSS di çêkeran de
Her weha hûn dikarin hilbijêrek CSS-ê wekî argumana yekem li şûna hêmanek DOM-ê bikar bînin da ku pêvekê bidin destpêkirin. Niha hêmana pêvekê bi querySelector
rêbazê tê dîtin ji ber ku pêvekên me tenê yek elementek piştgirî dikin.
var modal = new bootstrap.Modal('#myModal')
var dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
Fonksiyonên Asynchronous û veguherînan
Hemî rêbazên API-ya bernamesaz asînkron in û piştî ku veguheztin dest pê kir lê berî ku biqede vedigerin bangker .
Ji bo ku hûn gava veguheztinê qediya çalakiyek pêk bînin, hûn dikarin bûyera têkildar guhdarî bikin.
var myCollapseEl = document.getElementById('myCollapse')
myCollapseEl.addEventListener('shown.bs.collapse', function (event) {
// Action to execute once the collapsible area is expanded
})
Wekî din, bangek rêbazek li ser pêkhateyek veguhêz dê were paşguh kirin.
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 !!
Mîhengên xwerû
Hûn dikarin mîhengên xwerû ji bo pêvekê bi guheztina Constructor.Default
tiştê pêvekê biguhezînin:
// changes default for the modal plugin's `keyboard` option to false
bootstrap.Modal.Default.keyboard = false
Nakokî tune (tenê heke hûn jQuery bikar bînin)
Carinan hewce ye ku pêvekên Bootstrap bi çarçoveyên UI yên din re bikar bînin. Di van şertan de, car caran dibe ku pevçûnên navan çêbibin. Ger ev diqewime, hûn dikarin gazî .noConflict
pêveka ku hûn dixwazin nirxa wê vegerînin bikin.
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
Hejmarên Versiyon
Guhertoya her yek ji pêvekên Bootstrap dikare bi navgîniya avakera VERSION
pêvekê ve were gihîştin. Mînakî, ji bo pêveka tooltip:
bootstrap.Tooltip.VERSION // => "5.1.3"
Dema ku JavaScript neçalak be paşveçûnek taybetî tune
Pêvekên Bootstrap dema ku JavaScript neçalak be bi taybetî bi dilşikestî paşve naçin. Heke hûn di vê rewşê de ji ezmûna bikarhêner eleqedar dibin, bikar bînin <noscript>
ku rewşê (û çawa JavaScript-ê ji nû ve çalak bikin) ji bikarhênerên xwe re rave bikin, û/an jî paşverûyên xweyên xwerû lê zêde bikin.
Pirtûkxaneyên partiya sêyemîn
Bootstrap bi fermî pirtûkxaneyên JavaScript-ê yên wekî Prototype an jQuery UI piştgirî nake. Tevî .noConflict
bûyer û navan, dibe ku pirsgirêkên lihevhatinê hebin ku hûn hewce ne ku bi serê xwe rast bikin.
Sanitizer
Tooltips û Popovers paqijkera me ya çêkirî bikar tînin da ku vebijarkên ku HTML-ê qebûl dikin paqij bikin.
Nirxa allowList
xwerû ev e:
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: []
}
Heke hûn dixwazin nirxên nû li vê xwerû allowList
zêde bikin, hûn dikarin jêrîn bikin:
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)
Heke hûn dixwazin paqijkerê me derbas bikin ji ber ku hûn tercîh dikin ku pirtûkxaneyek taybetî bikar bînin, mînakî DOMPurify , divê hûn jêrîn bikin:
var yourTooltipEl = document.getElementById('yourTooltip')
var tooltip = new bootstrap.Tooltip(yourTooltipEl, {
sanitizeFn: function (content) {
return DOMPurify.sanitize(content)
}
})