JavaScript
Buhayin ang Bootstrap gamit ang aming mga opsyonal na plugin ng JavaScript na binuo sa jQuery. Matuto tungkol sa bawat plugin, aming data at mga opsyon sa programmatic na API, at higit pa.
Indibidwal o pinagsama-sama
Maaaring isama ang mga plugin nang isa-isa (gamit ang indibidwal na Bootstrap js/dist/*.js
), o sabay-sabay gamit bootstrap.js
o ang minified bootstrap.min.js
(huwag isama ang pareho).
Kung gumagamit ka ng isang bundler (Webpack, Rollup...), maaari kang gumamit ng /js/dist/*.js
mga file na nakahanda sa UMD.
Dependencies
Ang ilang mga plugin at mga bahagi ng CSS ay nakadepende sa iba pang mga plugin. Kung isa-isa kang magsasama ng mga plugin, tiyaking suriin ang mga dependency na ito sa mga doc. Tandaan din na ang lahat ng mga plugin ay nakasalalay sa jQuery (ito ay nangangahulugan na ang jQuery ay dapat isama bago ang mga plugin na file). Kumonsulta sa aminpackage.json
upang makita kung aling mga bersyon ng jQuery ang sinusuportahan.
Ang aming mga dropdown, popover at tooltip ay nakadepende rin sa Popper.js .
Mga katangian ng data
Halos lahat ng mga plugin ng Bootstrap ay maaaring paganahin at i-configure sa pamamagitan ng HTML lamang na may mga katangian ng data (ang aming gustong paraan ng paggamit ng paggana ng JavaScript). Tiyaking gumamit lamang ng isang hanay ng mga katangian ng data sa isang elemento (hal., hindi ka makakapag-trigger ng tooltip at modal mula sa parehong button.)
Gayunpaman, sa ilang mga sitwasyon ay maaaring kanais-nais na huwag paganahin ang pagpapaandar na ito. Upang hindi paganahin ang data attribute API, i-unbind ang lahat ng kaganapan sa dokumento na may namespace na data-api
tulad nito:
Bilang kahalili, upang i-target ang isang partikular na plugin, isama lamang ang pangalan ng plugin bilang isang namespace kasama ang data-api namespace tulad nito:
Mga pumipili
Sa kasalukuyan upang mag-query ng mga elemento ng DOM ay ginagamit namin ang mga katutubong pamamaraan querySelector
at querySelectorAll
para sa mga dahilan ng pagganap, kaya kailangan mong gumamit ng mga wastong tagapili . Kung gumagamit ka ng mga espesyal na tagapili, halimbawa: collapse:Example
tiyaking takasan ang mga ito.
Mga kaganapan
Nagbibigay ang Bootstrap ng mga custom na kaganapan para sa mga natatanging pagkilos ng karamihan sa mga plugin. Sa pangkalahatan, ang mga ito ay dumating sa isang infinitive at past participle form - kung saan ang infinitive (hal. show
) ay na-trigger sa simula ng isang kaganapan, at ang past participle form nito (hal. shown
) ay na-trigger sa pagkumpleto ng isang aksyon.
Ang lahat ng infinitive na kaganapan ay nagbibigay ng preventDefault()
functionality. Nagbibigay ito ng kakayahang ihinto ang pagpapatupad ng isang aksyon bago ito magsimula. Ang pagbabalik ng false mula sa isang event handler ay awtomatikong tatawag preventDefault()
.
Programmatic API
Naniniwala rin kami na dapat mong magamit ang lahat ng Bootstrap plugins sa pamamagitan lamang ng JavaScript API. Ang lahat ng mga pampublikong API ay iisa, nakaka-chainable na mga pamamaraan, at ibinabalik ang koleksyon na naaksyunan.
Ang lahat ng mga pamamaraan ay dapat tumanggap ng isang opsyonal na object na opsyon, isang string na nagta-target sa isang partikular na paraan, o wala (na nagpasimula ng isang plugin na may default na gawi):
Inilalantad din ng bawat plugin ang raw constructor nito sa isang Constructor
property: $.fn.popover.Constructor
. Kung gusto mong makakuha ng partikular na instance ng plugin, direktang kunin ito mula sa isang elemento: $('[rel="popover"]').data('popover')
.
Mga asynchronous na function at transition
Ang lahat ng mga pamamaraan ng programmatic API ay asynchronous at bumalik sa tumatawag kapag nagsimula ang paglipat ngunit bago ito matapos .
Upang maisagawa ang isang aksyon kapag nakumpleto na ang paglipat, maaari kang makinig sa kaukulang kaganapan.
Bilang karagdagan, ang isang tawag sa pamamaraan sa isang bahagi ng paglipat ay hindi papansinin .
Mga default na setting
Maaari mong baguhin ang mga default na setting para sa isang plugin sa pamamagitan ng pagbabago sa Constructor.Default
object ng plugin:
Walang conflict
Minsan kinakailangan na gumamit ng mga plugin ng Bootstrap kasama ng iba pang mga framework ng UI. Sa mga sitwasyong ito, maaaring mangyari paminsan-minsan ang mga banggaan ng namespace. Kung mangyari ito, maaari kang tumawag .noConflict
sa plugin na nais mong ibalik ang halaga.
Mga numero ng bersyon
Ang bersyon ng bawat isa sa mga plugin ng jQuery ng Bootstrap ay maaaring ma-access sa pamamagitan ng pag- VERSION
aari ng constructor ng plugin. Halimbawa, para sa tooltip plugin:
Walang mga espesyal na fallback kapag hindi pinagana ang JavaScript
Ang mga plugin ng Bootstrap ay hindi bumabalik lalo na nang maganda kapag ang JavaScript ay hindi pinagana. Kung nagmamalasakit ka sa karanasan ng user sa kasong ito, gamitin <noscript>
upang ipaliwanag ang sitwasyon (at kung paano muling paganahin ang JavaScript) sa iyong mga user, at/o magdagdag ng sarili mong mga custom na fallback.
Mga aklatan ng third-party
Hindi opisyal na sinusuportahan ng Bootstrap ang mga third-party na JavaScript library tulad ng Prototype o jQuery UI. Sa kabila .noConflict
at namespaced na mga kaganapan, maaaring may mga problema sa compatibility na kailangan mong ayusin nang mag-isa.
Util
Nakadepende ang lahat ng JavaScript file ng Bootstrap util.js
at dapat itong isama kasama ng iba pang mga JavaScript file. Kung ginagamit mo ang compiled (o minified) bootstrap.js
, hindi na kailangang isama ito—nandiyan na ito.
util.js
may kasamang mga function ng utility at isang pangunahing katulong para sa transitionEnd
mga kaganapan pati na rin ang isang CSS transition emulator. Ito ay ginagamit ng iba pang mga plugin upang tingnan ang CSS transition support at para mahuli ang hanging transition.
Sanitizer
Ginagamit ng Tooltips at Popovers ang aming built-in na sanitizer para i-sanitize ang mga opsyon na tumatanggap ng HTML.
Ang default whiteList
na halaga ay ang sumusunod:
Kung gusto mong magdagdag ng mga bagong value sa default na ito whiteList
maaari mong gawin ang sumusunod:
Kung gusto mong i-bypass ang aming sanitizer dahil mas gusto mong gumamit ng dedikadong library, halimbawa DOMPuify , dapat mong gawin ang sumusunod: