Source

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 (e) {
  if (!data) return e.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 (e) {
  // Action to execute once the collapsible area is expanded
})

ນອກຈາກນັ້ນ, ການໂທຫາວິທີການກ່ຽວກັບ ອົງປະກອບຂອງການປ່ຽນແປງຈະຖືກລະເລີຍ .

$('#myCarousel').on('slid.bs.carousel', function (e) {
  $('#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 ໄດ້​:

$.fn.modal.Constructor.Default.keyboard = false // changes default for the modal plugin's `keyboard` option to false

ບໍ່ມີຂໍ້ຂັດແຍ່ງ

ບາງຄັ້ງມັນຈໍາເປັນຕ້ອງໃຊ້ plugins Bootstrap ກັບກອບ UI ອື່ນໆ. ໃນສະຖານະການເຫຼົ່ານີ້, ການຂັດກັນຂອງ namespace ສາມາດເກີດຂຶ້ນເປັນບາງຄັ້ງຄາວ. ຖ້າສິ່ງນີ້ເກີດຂຶ້ນ, ທ່ານອາດຈະໂທຫາ .noConflictplugin ທີ່ທ່ານຕ້ອງການທີ່ຈະກັບຄືນມູນຄ່າຂອງ.

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.2.1"

ບໍ່ມີຂໍ້ບົກຜ່ອງພິເສດເມື່ອ 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.