முக்கிய உள்ளடக்கத்திற்கு செல்க டாக்ஸ் வழிசெலுத்தலுக்குச் செல்லவும்
Check
in English

ஜாவாஸ்கிரிப்ட்

எங்கள் விருப்பமான ஜாவாஸ்கிரிப்ட் செருகுநிரல்களுடன் பூட்ஸ்டார்ப்பை உயிர்ப்பிக்கவும். ஒவ்வொரு செருகுநிரல், எங்கள் தரவு மற்றும் நிரல் API விருப்பங்கள் மற்றும் பலவற்றைப் பற்றி அறிக.

தனிப்பட்ட அல்லது தொகுக்கப்பட்ட

செருகுநிரல்கள் தனித்தனியாக சேர்க்கப்படலாம் (பூட்ஸ்டார்ப்பின் தனிநபரைப் பயன்படுத்தி js/dist/*.js), அல்லது அனைத்தையும் ஒரே நேரத்தில் பயன்படுத்துதல் bootstrap.jsஅல்லது சிறியது bootstrap.min.js(இரண்டையும் சேர்க்க வேண்டாம்).

நீங்கள் ஒரு பண்ட்லரைப் பயன்படுத்தினால் (வெப்பேக், பார்சல், வைட்...), /js/dist/*.jsUMD தயாராக இருக்கும் கோப்புகளைப் பயன்படுத்தலாம்.

ஜாவாஸ்கிரிப்ட் கட்டமைப்புகளுடன் பயன்பாடு

பூட்ஸ்டார்ப் CSS ஐ எந்த கட்டமைப்பிலும் பயன்படுத்த முடியும் என்றாலும், பூட்ஸ்டார்ப் ஜாவாஸ்கிரிப்ட் , DOM பற்றிய முழு அறிவைக் கொண்டிருக்கும் React, Vue மற்றும் Angular போன்ற ஜாவாஸ்கிரிப்ட் கட்டமைப்புகளுடன் முழுமையாக இணங்கவில்லை . பூட்ஸ்டார்ப் மற்றும் ஃபிரேம்வொர்க் இரண்டும் ஒரே DOM உறுப்பை மாற்ற முயற்சி செய்யலாம், இதன் விளைவாக "திறந்த" நிலையில் உள்ள கீழ்தோன்றல்கள் போன்ற பிழைகள் ஏற்படும்.

இந்த வகை கட்டமைப்பைப் பயன்படுத்துபவர்களுக்கு ஒரு சிறந்த மாற்றாக , பூட்ஸ்டார்ப் ஜாவாஸ்கிரிப்ட்டுக்குப் பதிலாக, கட்டமைப்பின் குறிப்பிட்ட தொகுப்பைப் பயன்படுத்துவது. மிகவும் பிரபலமான சில விருப்பங்கள் இங்கே:

பூட்ஸ்டார்ப்பை ஒரு தொகுதியாகப் பயன்படுத்துதல்

நீங்களே முயற்சி செய்யுங்கள்! twbs/examples களஞ்சியத்திலிருந்து பூட்ஸ்டார்ப்பை ES தொகுதியாகப் பயன்படுத்துவதற்கான மூலக் குறியீடு மற்றும் வேலை செய்யும் டெமோவைப் பதிவிறக்கவும் . நீங்கள் உதாரணத்தை StackBlitz இல் திறக்கலாம் .

ESM( bootstrap.esm.jsமற்றும் ) என கட்டமைக்கப்பட்ட பூட்ஸ்டார்ப்பின் பதிப்பை நாங்கள் வழங்குகிறோம், இது உங்கள் இலக்கு உலாவிகள் அதை ஆதரித்தால்bootstrap.esm.min.js , உலாவியில் பூட்ஸ்டார்ப்பை ஒரு தொகுதியாகப் பயன்படுத்த உங்களை அனுமதிக்கிறது .

<script type="module">
  import { Toast } from 'bootstrap.esm.min.js'

  Array.from(document.querySelectorAll('.toast'))
    .forEach(toastNode => new Toast(toastNode))
</script>

JS பண்ட்லர்களுடன் ஒப்பிடும்போது, ​​உலாவியில் ESMஐப் பயன்படுத்துவதற்கு தொகுதி பெயருக்குப் பதிலாக முழு பாதை மற்றும் கோப்புப் பெயரைப் பயன்படுத்த வேண்டும். உலாவியில் JS தொகுதிகள் பற்றி மேலும் படிக்கவும். அதனால்தான் மேலே 'bootstrap.esm.min.js'உள்ளதைப் பயன்படுத்துகிறோம் 'bootstrap'. எவ்வாறாயினும், எங்கள் பாப்பர் சார்புநிலையால் இது மேலும் சிக்கலானது, இது பாப்பரை எங்கள் ஜாவாஸ்கிரிப்ட்டில் இறக்குமதி செய்கிறது:

import * as Popper from "@popperjs/core"

நீங்கள் இதை அப்படியே முயற்சித்தால், கன்சோலில் பின்வரும் பிழையைப் பார்ப்பீர்கள்:

Uncaught TypeError: Failed to resolve module specifier "@popperjs/core". Relative references must start with either "/", "./", or "../".

இதைச் சரிசெய்ய, importmapபாதைகளை முடிக்க தன்னிச்சையான தொகுதி பெயர்களைத் தீர்க்க நீங்கள் பயன்படுத்தலாம். உங்கள் இலக்கு உலாவிகள் ஆதரிக்கவில்லை என்றால் importmap, நீங்கள் es-module-shims திட்டத்தைப் பயன்படுத்த வேண்டும். பூட்ஸ்டார்ப் மற்றும் பாப்பருக்கு இது எவ்வாறு செயல்படுகிறது என்பது இங்கே:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
    <title>Hello, modularity!</title>
  </head>
  <body>
    <h1>Hello, modularity!</h1>
    <button id="popoverButton" type="button" class="btn btn-primary btn-lg" class="btn btn-lg btn-danger" data-bs-toggle="popover" title="ESM in Browser" data-bs-content="Bang!">Custom popover</button>

    <script async src="https://cdn.jsdelivr.net/npm/es-module-shims@1/dist/es-module-shims.min.js" crossorigin="anonymous"></script>
    <script type="importmap">
    {
      "imports": {
        "@popperjs/core": "https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js",
        "bootstrap": "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.esm.min.js"
      }
    }
    </script>
    <script type="module">
      import * as bootstrap from 'bootstrap'

      new bootstrap.Popover(document.getElementById('popoverButton'))
    </script>
  </body>
</html>

சார்புநிலைகள்

சில செருகுநிரல்கள் மற்றும் CSS கூறுகள் மற்ற செருகுநிரல்களைப் பொறுத்தது. நீங்கள் தனித்தனியாக செருகுநிரல்களைச் சேர்த்தால், ஆவணத்தில் இந்த சார்புகளை சரிபார்க்கவும்.

எங்களின் டிராப் டவுன்கள், பாப்ஓவர்கள் மற்றும் டூல்டிப்களும் பாப்பரைச் சார்ந்தது .

தரவு பண்புக்கூறுகள்

கிட்டத்தட்ட அனைத்து பூட்ஸ்டார்ப் செருகுநிரல்களையும் தரவு பண்புக்கூறுகளுடன் HTML மூலம் மட்டுமே இயக்கலாம் மற்றும் கட்டமைக்கலாம் (ஜாவாஸ்கிரிப்ட் செயல்பாட்டைப் பயன்படுத்துவதற்கான எங்கள் விருப்பமான வழி). ஒரு தனிமத்தில் ஒரு தரவுப் பண்புக்கூறுகளை மட்டுமே பயன்படுத்துவதை உறுதிப்படுத்திக் கொள்ளுங்கள் (எ.கா., ஒரே பொத்தானில் இருந்து ஒரு உதவிக்குறிப்பு மற்றும் மாதிரியைத் தூண்ட முடியாது.)

தரவு பண்புக்கூறுகள் அல்லது ஜாவாஸ்கிரிப்ட் வழியாக விருப்பங்களை அனுப்ப முடியும் என்பதால், இல் உள்ளதைப் போல விருப்பப் பெயரை நீங்கள் data-bs-சேர்க்கலாம் data-bs-animation="{value}". தரவு பண்புக்கூறுகள் வழியாக விருப்பங்களை அனுப்பும் போது, ​​" camelCase " என்பதிலிருந்து " kebab-case " என்ற விருப்பப் பெயரின் கேஸ் வகையை மாற்றுவதை உறுதிசெய்யவும் . எடுத்துக்காட்டாக, க்கு data-bs-custom-class="beautifier"பதிலாக பயன்படுத்தவும் data-bs-customClass="beautifier".

பூட்ஸ்டார்ப் 5.2.0 இன் படி, அனைத்து கூறுகளும் ஒரு சோதனை முன்பதிவு செய்யப்பட்ட தரவு பண்புக்கூறை ஆதரிக்கின்றன data-bs-config, இது JSON சரமாக எளிய கூறு உள்ளமைவைக் கொண்டிருக்கும். ஒரு உறுப்பு data-bs-config='{"delay":0, "title":123}'மற்றும் data-bs-title="456"பண்புக்கூறுகள் இருக்கும்போது, ​​​​இறுதி titleமதிப்பு இருக்கும் 456மற்றும் தனி தரவு பண்புக்கூறுகள் இல் கொடுக்கப்பட்ட மதிப்புகளை மீறும் data-bs-config. கூடுதலாக, தற்போதுள்ள தரவு பண்புக்கூறுகள் போன்ற JSON மதிப்புகளை வைக்க முடியும் data-bs-delay='{"show":0,"hide":150}'.

தேர்வாளர்கள்

செயல்திறன் காரணங்களுக்காக DOM கூறுகளை வினவுவதற்கு நாங்கள் நேட்டிவ் querySelectorமற்றும் முறைகளைப் பயன்படுத்துகிறோம், எனவே நீங்கள் சரியான தேர்வாளர்களைப் பயன்படுத்த வேண்டும் . போன்ற சிறப்புத் தேர்வாளர்களைப் பயன்படுத்தினால் , அவற்றிலிருந்து தப்பிக்க மறக்காதீர்கள்.querySelectorAllcollapse:Example

நிகழ்வுகள்

பெரும்பாலான செருகுநிரல்களின் தனிப்பட்ட செயல்களுக்கான தனிப்பயன் நிகழ்வுகளை பூட்ஸ்டார்ப் வழங்குகிறது. showபொதுவாக, இவை ஒரு முடிவிலி மற்றும் கடந்த பங்கேற்பு வடிவத்தில் வரும் - ஒரு நிகழ்வின் தொடக்கத்தில் முடிவிலி (எ.கா. ) தூண்டப்படுகிறது, மேலும் அதன் கடந்த பங்கேற்பு வடிவம் (எ.கா. shown) ஒரு செயலின் முடிவில் தூண்டப்படுகிறது.

அனைத்து முடிவிலி நிகழ்வுகளும் preventDefault()செயல்பாட்டை வழங்குகின்றன. இது ஒரு செயலைத் தொடங்கும் முன் அதைச் செயல்படுத்துவதை நிறுத்தும் திறனை வழங்குகிறது. நிகழ்வு ஹேண்ட்லரிடமிருந்து தவறு எனத் திரும்பினால் தானாகவே அழைக்கப்படும் preventDefault().

const myModal = document.querySelector('#myModal')

myModal.addEventListener('show.bs.modal', event => {
  if (!data) {
    return event.preventDefault() // stops modal from being shown
  }
})

நிரல் API

அனைத்து கன்ஸ்ட்ரக்டர்களும் விருப்பத்தேர்வுகள் ஆப்ஜெக்ட் அல்லது எதையும் ஏற்கவில்லை (இது ஒரு செருகுநிரலை அதன் இயல்புநிலை நடத்தையுடன் துவக்குகிறது):

const myModalEl = document.querySelector('#myModal')

const modal = new bootstrap.Modal(myModalEl) // initialized with defaults

const configObject = { keyboard: false }
const modal1 = new bootstrap.Modal(myModalEl, configObject) // initialized with no keyboard

நீங்கள் ஒரு குறிப்பிட்ட செருகுநிரல் நிகழ்வைப் பெற விரும்பினால், ஒவ்வொரு செருகுநிரலும் ஒரு getInstanceமுறையை வெளிப்படுத்தும். எடுத்துக்காட்டாக, ஒரு உறுப்பிலிருந்து நேரடியாக ஒரு நிகழ்வை மீட்டெடுக்க:

bootstrap.Popover.getInstance(myPopoverEl)

nullகோரப்பட்ட உறுப்புக்கு மேல் ஒரு நிகழ்வு தொடங்கப்படாவிட்டால் இந்த முறை திரும்பும் .

மாற்றாக, getOrCreateInstanceDOM உறுப்புடன் தொடர்புடைய நிகழ்வைப் பெற பயன்படுத்தலாம் அல்லது அது துவக்கப்படாமல் இருந்தால் புதிய ஒன்றை உருவாக்கலாம்.

bootstrap.Popover.getOrCreateInstance(myPopoverEl, configObject)

ஒரு நிகழ்வு துவக்கப்படவில்லை என்றால், அது இரண்டாவது வாதமாக ஒரு விருப்ப உள்ளமைவு பொருளை ஏற்றுக்கொண்டு பயன்படுத்தலாம்.

கட்டமைப்பாளர்களில் CSS தேர்வாளர்கள்

getInstanceமற்றும் முறைகள் கூடுதலாக , அனைத்து செருகுநிரல் கட்டமைப்பாளர்களும் ஒரு DOM உறுப்பு அல்லது சரியான CSS தேர்வியை முதல் வாதமாக getOrCreateInstanceஏற்கலாம் . எங்கள் செருகுநிரல்கள் ஒரு தனிமத்தை மட்டுமே ஆதரிக்கும் என்பதால் , செருகுநிரல் கூறுகள் முறையுடன் காணப்படுகின்றன .querySelector

const modal = new bootstrap.Modal('#myModal')
const dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
const offcanvas = bootstrap.Offcanvas.getInstance('#myOffcanvas')
const alert = bootstrap.Alert.getOrCreateInstance('#myAlert')

ஒத்திசைவற்ற செயல்பாடுகள் மற்றும் மாற்றங்கள்

அனைத்து நிரல் API முறைகளும் ஒத்திசைவற்றவை மற்றும் மாற்றம் தொடங்கப்பட்டவுடன் அழைப்பாளரிடம் திரும்பும், ஆனால் அது முடிவதற்குள் . மாற்றம் முடிந்ததும் ஒரு செயலைச் செயல்படுத்த, தொடர்புடைய நிகழ்வைக் கேட்கலாம்.

const myCollapseEl = document.querySelector('#myCollapse')

myCollapseEl.addEventListener('shown.bs.collapse', event => {
  // Action to execute once the collapsible area is expanded
})

கூடுதலாக, மாற்றும் கூறுகளின் முறை அழைப்பு புறக்கணிக்கப்படும் .

const myCarouselEl = document.querySelector('#myCarousel')
const carousel = bootstrap.Carousel.getInstance(myCarouselEl) // Retrieve a Carousel instance

myCarouselEl.addEventListener('slid.bs.carousel', 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 !!

disposeமுறை

disposeக்குப் பிறகு உடனடியாக முறையைப் பயன்படுத்துவது சரியானதாகத் தோன்றினாலும் hide(), அது தவறான முடிவுகளுக்கு வழிவகுக்கும். சிக்கலைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு இங்கே:

const myModal = document.querySelector('#myModal')
myModal.hide() // it is asynchronous

myModal.addEventListener('shown.bs.hidden', event => {
  myModal.dispose()
})

இயல்புநிலை அமைப்புகள்

Constructor.Defaultசெருகுநிரலின் பொருளை மாற்றுவதன் மூலம் சொருகிக்கான இயல்புநிலை அமைப்புகளை நீங்கள் மாற்றலாம் :

// changes default for the modal plugin's `keyboard` option to false
bootstrap.Modal.Default.keyboard = false

முறைகள் மற்றும் பண்புகள்

ஒவ்வொரு பூட்ஸ்டார்ப் செருகுநிரலும் பின்வரும் முறைகள் மற்றும் நிலையான பண்புகளை வெளிப்படுத்துகிறது.

முறை விளக்கம்
dispose ஒரு தனிமத்தின் மாதிரியை அழிக்கிறது. (DOM உறுப்பில் சேமிக்கப்பட்ட தரவை நீக்குகிறது)
getInstance DOM உறுப்புடன் தொடர்புடைய மாதிரி நிகழ்வைப் பெற உங்களை அனுமதிக்கும் நிலையான முறை.
getOrCreateInstance DOM உறுப்புடன் தொடர்புடைய மாதிரி நிகழ்வைப் பெற உங்களை அனுமதிக்கும் நிலையான முறை, அல்லது அது துவக்கப்படாமல் இருந்தால் புதிய ஒன்றை உருவாக்கவும்.
நிலையான சொத்து விளக்கம்
NAME செருகுநிரல் பெயரை வழங்குகிறது. (எடுத்துக்காட்டு bootstrap.Tooltip.NAME:)
VERSION ஒவ்வொரு பூட்ஸ்டார்ப்பின் செருகுநிரல்களின் பதிப்பையும் செருகுநிரலின் கட்டமைப்பாளரின் சொத்து வழியாக அணுகலாம் VERSION(எடுத்துக்காட்டு: bootstrap.Tooltip.VERSION)

சானிடைசர்

உதவிக்குறிப்புகள் மற்றும் பாப்ஓவர்கள் HTML ஐ ஏற்றுக்கொள்ளும் விருப்பங்களை சுத்தப்படுத்த எங்களின் உள்ளமைக்கப்பட்ட சானிடைசரைப் பயன்படுத்துகின்றன.

இயல்புநிலை allowListமதிப்பு பின்வருமாறு:

const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
const 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: []
}

இந்த இயல்புநிலையில் புதிய மதிப்புகளைச் சேர்க்க விரும்பினால் allowList, பின்வருவனவற்றைச் செய்யலாம்:

const 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
const myCustomRegex = /^data-my-app-[\w-]+/
myDefaultAllowList['*'].push(myCustomRegex)

நீங்கள் ஒரு பிரத்யேக நூலகத்தைப் பயன்படுத்த விரும்புவதால், எங்கள் சுத்திகரிப்பாளரைத் தவிர்க்க விரும்பினால், எடுத்துக்காட்டாக , DOMPurify , நீங்கள் பின்வருவனவற்றைச் செய்ய வேண்டும்:

const yourTooltipEl = document.querySelector('#yourTooltip')
const tooltip = new bootstrap.Tooltip(yourTooltipEl, {
  sanitizeFn(content) {
    return DOMPurify.sanitize(content)
  }
})

விருப்பமாக jQuery ஐப் பயன்படுத்தவும்

பூட்ஸ்டார்ப் 5 இல் உங்களுக்கு jQuery தேவையில்லை , ஆனால் எங்கள் கூறுகளை jQuery உடன் பயன்படுத்துவது இன்னும் சாத்தியமாகும். பொருளில் பூட்ஸ்டார்ப் கண்டறிந்தால் jQuery, windowஅது எங்கள் அனைத்து கூறுகளையும் jQuery இன் செருகுநிரல் அமைப்பில் சேர்க்கும். இது பின்வருவனவற்றைச் செய்ய உங்களை அனுமதிக்கிறது:

$('[data-bs-toggle="tooltip"]').tooltip() // to enable tooltips, with default configuration

$('[data-bs-toggle="tooltip"]').tooltip({ boundary: 'clippingParents', customClass: 'myClass' }) // to initialize tooltips with given configuration

$('#myTooltip').tooltip('show') // to trigger `show` method

எங்கள் மற்ற கூறுகளுக்கும் இதுவே செல்கிறது.

மோதல் இல்லை

சில நேரங்களில் மற்ற UI கட்டமைப்புகளுடன் பூட்ஸ்டார்ப் செருகுநிரல்களைப் பயன்படுத்துவது அவசியம். இந்த சூழ்நிலைகளில், பெயர்வெளி மோதல்கள் அவ்வப்போது நிகழலாம். .noConflictஇது நடந்தால், நீங்கள் மதிப்பை மாற்ற விரும்பும் செருகுநிரலை அழைக்கலாம் .

const bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality

முன்மாதிரி அல்லது jQuery UI போன்ற மூன்றாம் தரப்பு ஜாவாஸ்கிரிப்ட் நூலகங்களை பூட்ஸ்டார்ப் அதிகாரப்பூர்வமாக ஆதரிக்காது. இருந்தாலும் .noConflict, பெயரிடப்பட்ட நிகழ்வுகள், நீங்கள் சொந்தமாக சரிசெய்ய வேண்டிய பொருந்தக்கூடிய சிக்கல்கள் இருக்கலாம்.

jQuery நிகழ்வுகள்

பொருளில் jQuery இருந்தால் jQueryமற்றும் பண்புக்கூறு windowஎதுவும் data-bs-no-jqueryஅமைக்கப்படவில்லை என்பதை பூட்ஸ்டார்ப் கண்டறியும் <body>. jQuery கண்டுபிடிக்கப்பட்டால், பூட்ஸ்டார்ப் jQuery இன் நிகழ்வு அமைப்புக்கு நன்றி செலுத்தும் நிகழ்வுகளை வெளியிடும். எனவே நீங்கள் பூட்ஸ்டார்ப்பின் நிகழ்வுகளைக் கேட்க விரும்பினால், அதற்கு பதிலாக jQuery முறைகளை ( .on, .one) பயன்படுத்த வேண்டும் addEventListener.

$('#myTab a').on('shown.bs.tab', () => {
  // do something...
})

JavaScript முடக்கப்பட்டது

ஜாவாஸ்கிரிப்ட் முடக்கப்பட்டிருக்கும் போது பூட்ஸ்டார்ப்பின் செருகுநிரல்களுக்கு சிறப்பு பின்னடைவு இருக்காது. இந்தச் சந்தர்ப்பத்தில் பயனர் அனுபவத்தைப் பற்றி நீங்கள் அக்கறை கொண்டால் <noscript>, உங்கள் பயனர்களுக்கு நிலைமையை (மற்றும் JavaScript ஐ எவ்வாறு மீண்டும் இயக்குவது) என்பதை விளக்கவும், மற்றும்/அல்லது உங்கள் சொந்த தனிப்பயன் ஃபால்பேக்குகளைச் சேர்க்கவும்.