JavaScript
ເຮັດໃຫ້ Bootstrap ມີຊີວິດຊີວາດ້ວຍ plugins JavaScript ທາງເລືອກຂອງພວກເຮົາທີ່ສ້າງຂຶ້ນໃນ jQuery. ຮຽນຮູ້ກ່ຽວກັບແຕ່ລະປລັກອິນ, ຂໍ້ມູນຂອງພວກເຮົາ ແລະຕົວເລືອກ API ແບບໂປຣແກຣມ, ແລະອື່ນໆອີກ.
ສ່ວນບຸກຄົນຫຼືລວບລວມ
ປັ໊ກອິນສາມາດຖືກລວມເຂົ້າເປັນສ່ວນບຸກຄົນ (ໂດຍນໍາໃຊ້ສ່ວນບຸກຄົນຂອງ Bootstrap js/dist/*.js
), ຫຼືທັງຫມົດໃນເວລາດຽວໂດຍໃຊ້ bootstrap.js
ຫຼືຫຍໍ້ bootstrap.min.js
(ບໍ່ລວມທັງສອງ).
ຖ້າທ່ານໃຊ້ bundler (Webpack, Rollup…), ທ່ານສາມາດນໍາໃຊ້ /js/dist/*.js
ໄຟລ໌ທີ່ມີ UMD ພ້ອມ.
ການເພິ່ງພາອາໄສ
ບາງ plugins ແລະອົງປະກອບ CSS ແມ່ນຂຶ້ນກັບ plugins ອື່ນໆ. ຖ້າທ່ານລວມເອົາ plugins ແຕ່ລະອັນ, ໃຫ້ແນ່ໃຈວ່າຈະກວດເບິ່ງການເພິ່ງພາອາໄສເຫຼົ່ານີ້ຢູ່ໃນເອກະສານ. ໃຫ້ສັງເກດວ່າ plugins ທັງຫມົດແມ່ນຂຶ້ນກັບ jQuery (ນີ້ຫມາຍຄວາມວ່າ jQuery ຕ້ອງຖືກລວມຢູ່ ກ່ອນ ໄຟລ໌ plugin). ປຶກສາຂອງພວກເຮົາpackage.json
ເພື່ອເບິ່ງວ່າ jQuery ຮຸ່ນໃດໄດ້ຮັບການສະຫນັບສະຫນູນ.
ການຫຼຸດລົງຂອງພວກເຮົາ, popovers ແລະຄໍາແນະນໍາເຄື່ອງມືຍັງຂຶ້ນກັບ Popper.js .
ຄຸນລັກສະນະຂອງຂໍ້ມູນ
ເກືອບທຸກ plugins Bootstrap ສາມາດຖືກເປີດໃຊ້ງານແລະກໍາຫນົດຄ່າຜ່ານ HTML ຢ່າງດຽວດ້ວຍຄຸນລັກສະນະຂໍ້ມູນ (ວິທີທີ່ພວກເຮົາຕ້ອງການໃຊ້ຫນ້າທີ່ JavaScript). ໃຫ້ແນ່ໃຈວ່າ ໃຊ້ພຽງແຕ່ຫນຶ່ງຊຸດຂອງຄຸນລັກສະນະຂໍ້ມູນໃນອົງປະກອບດຽວ (ຕົວຢ່າງ, ທ່ານບໍ່ສາມາດກະຕຸ້ນຄໍາແນະນໍາເຄື່ອງມືແລະ modal ຈາກປຸ່ມດຽວກັນ.)
ຢ່າງໃດກໍຕາມ, ໃນບາງສະຖານະການມັນອາດຈະຕ້ອງການທີ່ຈະປິດການທໍາງານນີ້. ເພື່ອປິດການນຳໃຊ້ຄຸນລັກສະນະຂໍ້ມູນ API, ຍົກເລີກການຜູກມັດເຫດການທັງໝົດໃນເອກະສານທີ່ຕັ້ງຊື່ດ້ວຍອັນ data-api
ນີ້:
$(document).off('.data-api')
ອີກທາງເລືອກ, ເພື່ອແນໃສ່ plugin ສະເພາະ, ພຽງແຕ່ໃສ່ຊື່ຂອງ plugin ເປັນ namespace ພ້ອມກັບ namespace data-api ແບບນີ້:
$(document).off('.alert.data-api')
ຕົວເລືອກ
ໃນປັດຈຸບັນເພື່ອສອບຖາມອົງປະກອບ DOM ພວກເຮົາໃຊ້ວິທີການພື້ນເມືອງ querySelector
ແລະ querySelectorAll
ສໍາລັບເຫດຜົນການປະຕິບັດ, ດັ່ງນັ້ນທ່ານຕ້ອງໃຊ້ ຕົວເລືອກທີ່ຖືກຕ້ອງ . ຖ້າທ່ານໃຊ້ຕົວເລືອກພິເສດ, ຕົວຢ່າງ: collapse:Example
ໃຫ້ແນ່ໃຈວ່າຈະຫນີພວກເຂົາ.
ເຫດການ
Bootstrap ໃຫ້ເຫດການທີ່ກໍາຫນົດເອງສໍາລັບການປະຕິບັດທີ່ເປັນເອກະລັກຂອງ plugins ສ່ວນໃຫຍ່. ໂດຍທົ່ວໄປແລ້ວ, ສິ່ງເຫຼົ່ານີ້ມາໃນຮູບແບບການມີສ່ວນຮ່ວມທີ່ບໍ່ມີຂອບເຂດ ແລະ ທີ່ຜ່ານມາ - ບ່ອນທີ່ infinitive (ex. show
) ຖືກກະຕຸ້ນໃນຕອນເລີ່ມຕົ້ນຂອງເຫດການ, ແລະແບບຟອມການມີສ່ວນຮ່ວມທີ່ຜ່ານມາຂອງມັນ (ຕົວຢ່າງ. shown
) ຖືກກະຕຸ້ນໃນເວລາສໍາເລັດການດໍາເນີນການ.
ເຫດການທີ່ບໍ່ມີຂອບເຂດທັງໝົດໃຫ້ການ preventDefault()
ເຮັດວຽກ. ນີ້ສະຫນອງຄວາມສາມາດໃນການຢຸດການປະຕິບັດການດໍາເນີນການກ່ອນທີ່ຈະເລີ່ມຕົ້ນ. ການສົ່ງຄືນຂໍ້ມູນທີ່ບໍ່ຖືກຕ້ອງຈາກຕົວຈັດການເຫດການຈະໂທຫາໂດຍອັດຕະໂນມັດ preventDefault()
.
$('#myModal').on('show.bs.modal', function (event) {
if (!data) {
return event.preventDefault() // stops modal from being shown
}
})
API ໂປຣແກຣມ
ພວກເຮົາຍັງເຊື່ອວ່າທ່ານຄວນຈະສາມາດນໍາໃຊ້ plugins Bootstrap ທັງຫມົດໂດຍຜ່ານ JavaScript API. APIs ສາທາລະນະທັງຫມົດແມ່ນວິທີດຽວ, ເປັນລະບົບຕ່ອງໂສ້, ແລະສົ່ງຄືນການເກັບກໍາທີ່ປະຕິບັດ.
$('.btn.danger').button('toggle').addClass('fat')
ວິທີການທັງໝົດຄວນຍອມຮັບວັດຖຸທາງເລືອກທີ່ເປັນທາງເລືອກ, ສະຕຣິງທີ່ແນເປົ້າໝາຍໃສ່ວິທີການໃດນຶ່ງ, ຫຼືບໍ່ມີຫຍັງເລີຍ (ທີ່ລິເລີ່ມ plugin ທີ່ມີພຶດຕິກຳເລີ່ມຕົ້ນ):
$('#myModal').modal() // initialized with defaults
$('#myModal').modal({ keyboard: false }) // initialized with no keyboard
$('#myModal').modal('show') // initializes and invokes show immediately
ແຕ່ລະ plugin ຍັງເປີດເຜີຍຕົວສ້າງວັດຖຸດິບຂອງມັນຢູ່ໃນ Constructor
ຊັບສິນ: $.fn.popover.Constructor
. ຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະໄດ້ຮັບຕົວຢ່າງ plugin ສະເພາະໃດຫນຶ່ງ, ດຶງມັນໂດຍກົງຈາກອົງປະກອບ: $('[rel="popover"]').data('popover')
.
ຟັງຊັນ ແລະ ການຫັນປ່ຽນແບບບໍ່ກົງກັນ
ວິທີການ API ທີ່ເປັນໂປຣແກຣມທັງໝົດແມ່ນ asynchronous ແລະກັບຄືນຫາຜູ້ໂທເມື່ອການຫັນປ່ຽນເລີ່ມຕົ້ນແຕ່ ກ່ອນທີ່ມັນຈະສິ້ນສຸດ .
ເພື່ອປະຕິບັດການກະທໍາເມື່ອການຫັນປ່ຽນສໍາເລັດ, ທ່ານສາມາດຟັງເຫດການທີ່ສອດຄ້ອງກັນໄດ້.
$('#myCollapse').on('shown.bs.collapse', function (event) {
// Action to execute once the collapsible area is expanded
})
ນອກຈາກນັ້ນ, ການໂທຫາວິທີການກ່ຽວກັບ ອົງປະກອບຂອງການປ່ຽນແປງຈະຖືກລະເລີຍ .
$('#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 !!
ການຕັ້ງຄ່າເລີ່ມຕົ້ນ
ທ່ານສາມາດປ່ຽນການຕັ້ງຄ່າເລີ່ມຕົ້ນສໍາລັບ plugin ໄດ້ໂດຍການປັບປຸງ Constructor.Default
ຈຸດປະສົງຂອງ plugin ໄດ້:
// changes default for the modal plugin's `keyboard` option to false
$.fn.modal.Constructor.Default.keyboard = false
ບໍ່ມີຂໍ້ຂັດແຍ່ງ
ບາງຄັ້ງມັນຈໍາເປັນຕ້ອງໃຊ້ plugins Bootstrap ກັບກອບ UI ອື່ນໆ. ໃນສະຖານະການເຫຼົ່ານີ້, ການຂັດກັນຂອງ namespace ສາມາດເກີດຂຶ້ນເປັນບາງຄັ້ງຄາວ. ຖ້າສິ່ງນີ້ເກີດຂຶ້ນ, ທ່ານອາດຈະໂທຫາ .noConflict
plugin ທີ່ທ່ານຕ້ອງການທີ່ຈະກັບຄືນມູນຄ່າຂອງ.
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
ຕົວເລກສະບັບ
ສະບັບຂອງແຕ່ລະ plugins jQuery ຂອງ Bootstrap ສາມາດເຂົ້າເຖິງໄດ້ໂດຍຜ່ານ VERSION
ຊັບສິນຂອງຕົວສ້າງຂອງ plugin. ສໍາລັບຕົວຢ່າງ, ສໍາລັບ plugin ຄໍາແນະນໍາເຄື່ອງມື:
$.fn.tooltip.Constructor.VERSION // => "4.6.2"
ບໍ່ມີຂໍ້ບົກຜ່ອງພິເສດເມື່ອ JavaScript ຖືກປິດໃຊ້ງານ
ປັ໊ກອິນຂອງ Bootstrap ຈະບໍ່ກັບຄືນມາໂດຍສະເພາະເມື່ອ JavaScript ຖືກປິດໃຊ້ງານ. ຖ້າທ່ານສົນໃຈປະສົບການຂອງຜູ້ໃຊ້ໃນກໍລະນີນີ້, ໃຫ້ໃຊ້ <noscript>
ເພື່ອອະທິບາຍສະຖານະການ (ແລະວິທີການເປີດໃຊ້ JavaScript ຄືນໃໝ່) ໃຫ້ກັບຜູ້ໃຊ້ຂອງເຈົ້າ, ແລະ/ຫຼືເພີ່ມການຕອບໂຕ້ແບບກຳນົດເອງຂອງເຈົ້າເອງ.
ຫ້ອງສະຫມຸດພາກສ່ວນທີສາມ
Bootstrap ບໍ່ຮອງຮັບຫ້ອງສະໝຸດ JavaScript ຂອງພາກສ່ວນທີສາມຢ່າງເປັນທາງການ ເຊັ່ນ Prototype ຫຼື jQuery UI. ເຖິງວ່າຈະມີ .noConflict
ເຫດການທີ່ມີ namespaced, ອາດຈະມີບັນຫາຄວາມເຂົ້າກັນໄດ້ທີ່ທ່ານຈໍາເປັນຕ້ອງແກ້ໄຂດ້ວຍຕົນເອງ.
ປະໂຫຍດ
ໄຟລ໌ JavaScript ທັງໝົດຂອງ Bootstrap ແມ່ນຂຶ້ນກັບ util.js
ແລະມັນຕ້ອງຖືກລວມເຂົ້າກັບໄຟລ໌ JavaScript ອື່ນໆ. ຖ້າຫາກວ່າທ່ານກໍາລັງນໍາໃຊ້ການສັງລວມ (ຫຼືຫຍໍ້) bootstrap.js
, ບໍ່ຈໍາເປັນຕ້ອງປະກອບການນີ້, ມັນມີຢູ່ແລ້ວ.
util.js
ປະກອບມີຟັງຊັນທີ່ເປັນປະໂຫຍດແລະຕົວຊ່ວຍພື້ນຖານສໍາລັບ transitionEnd
ເຫດການເຊັ່ນດຽວກັນກັບ CSS transition emulator. ມັນຖືກນໍາໃຊ້ໂດຍ plugins ອື່ນໆເພື່ອກວດເບິ່ງການສະຫນັບສະຫນູນການປ່ຽນ CSS ແລະເພື່ອຈັບການປ່ຽນ Hanging.
ເຈວລ້າງມື
ຄໍາແນະນໍາເຄື່ອງມືແລະ Popovers ໃຊ້ຢາຂ້າເຊື້ອໃນຕົວຂອງພວກເຮົາເພື່ອເຮັດຄວາມສະອາດທາງເລືອກທີ່ຍອມຮັບ HTML.
ຄ່າເລີ່ມຕົ້ນ whiteList
ແມ່ນຕໍ່ໄປນີ້:
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: []
}
ຖ້າທ່ານຕ້ອງການເພີ່ມຄ່າໃຫມ່ໃຫ້ກັບຄ່າເລີ່ມຕົ້ນນີ້ whiteList
, ທ່ານສາມາດເຮັດດັ່ງຕໍ່ໄປນີ້:
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)
ຖ້າທ່ານຕ້ອງການຂ້າມຢາຂ້າເຊື້ອຂອງພວກເຮົາເພາະວ່າທ່ານຕ້ອງການໃຊ້ຫ້ອງສະຫມຸດສະເພາະ, ຕົວຢ່າງ DOMPurify , ທ່ານຄວນເຮັດສິ່ງຕໍ່ໄປນີ້:
$('#yourTooltip').tooltip({
sanitizeFn: function (content) {
return DOMPurify.sanitize(content)
}
})