Ejupi contenido principal-pe Eike docs jeguatahápe
in English

JavaScript rehegua

Emoingove Bootstrap-pe ore JavaScript mboajepyréva opcional reheve. Eikuaa peteĩteĩva plugin rehegua, ore dato ha API programática opción rehegua ha hetave mba’e.

Peteĩteĩ térã oñembyatýva

Umi plugin ikatu oike peteĩteĩ (oipurúvo Bootstrap peteĩteĩva js/dist/*.js), térã opaite peteĩ jeýpe oipurúvo bootstrap.jstérã oñemboguejýva bootstrap.min.js(ani oike mokõivéva).

Eipurúramo peteĩ bundler (Webpack, Rollup...), ikatu eipuru /js/dist/*.jsvore oĩva UMD-pe.

Oipurúvo Bootstrap peteĩ módulo ramo

Rome’ẽ peteĩ Bootstrap versión oñemopu’ãva ESM( bootstrap.esm.jsha bootstrap.esm.min.js) ramo ohejáva ndéve reipuru Bootstrap peteĩ módulo ramo ne kundahárape, ne kundahára reñembohapéva oipytyvõramo .

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

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

Umi plugin ndojogueraháiva

Ojeguerekógui limitación navegador, oĩ ñande plugins, ha’éva Dropdown, Tooltip ha Popover plugins, ndaikatúi ojepuru peteĩ <script>etiqueta orekóva moduletipo-pe odependégui Popper rehe. Ojekuaave hag̃ua ko mbaʼére ehecha koʼápe .

Umi dependencia rehegua

Oĩ plugin ha CSS componente odependéva ambue plugin rehe. Emoĩramo umi plugin peteĩteĩ, eñangareko ehecha hag̃ua ko’ã dependencia umi docs-pe.

Ñande dropdown, popover ha tembipuru’i odepende avei Popper rehe .

¿Reipuruse gueteri jQuery? ¡Ikatu ningo!

Bootstrap 5 ojejapo ojepuru hag̃ua jQuery’ỹre, ha katu ikatu gueteri ojepuru ñande componentekuéra jQuery ndive. Bootstrap ohechakuaáramo jQuerymba’e’oka ryepýpe windowomoĩta opaite ñande componente jQuery sistema plugin-pe; kóva he’ise ikatutaha rejapo $('[data-bs-toggle="tooltip"]').tooltip()emboguata hag̃ua tembipuru’i ñe’ẽmondo. Péicha avei ojejapo ñande ambue componente-kuéra rehe.

Umi atributo de datos rehegua

Haimete opaite Bootstrap mboajepyréva ikatu oñemboguata ha oñemboheko HTML rupive añoite umi atributo dato rehegua reheve (ñande tape jaiporavovéva jaipuru hag̃ua JavaScript rembiaporã). Ejesareko eipuru hag̃ua peteĩ atributo datokuéra ryru añoite peteĩ elemento rehe (techapyrã, ndaikatúi emoñepyrũ peteĩ tembipuru’i ha modal peteĩchagua botón-gui).

Umi oiporavóva

Ko’áĝaite oñeporandu hag̃ua DOM elementokuéra roipuru umi método nativo querySelectorha querySelectorAllmba’e’apopyrã rehe, upévare reipuruva’erã umi selector añetegua . Oipurúramo selector especial, techapyrã: collapse:Examplekatuete ekañy chuguikuéra.

Umi mba’e oikóva

Bootstrap ome’ẽ mba’e’oka jeporupyre hetavéva umi plugin rembiaporã ijojaha’ỹvape g̃uarã. Generalmente, koꞌãva oúva peteĩ forma infinitiva ha participio ohasavaꞌekuépe - oñemboguatahápe infinitivo (ex. show) oñepyrũvo peteĩ mbaꞌe ojehúva, ha iforma participio ohasavaꞌekue (ex. shown) oñembohapéva oñembotývo peteĩ tembiapo.

Opaite mba’e ojehúva infinitivo ome’ẽ preventDefault()funcionalidad. Kóva omeꞌe katupyry ojejoko hag̃ua peteĩ tembiapo jejapópe oñepyrũ mboyve. Ojevy jeývo japu peteĩ mba’e’oka ñangarekoháragui ohenóita avei ijeheguiete preventDefault().

var myModal = document.getElementById('myModal')

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

jQuery mba’e ojehúva

Bootstrap ohechakuaáta jQuery oĩramo jQuerymba’e’oka’ípe windowha ndaipóri data-bs-no-jqueryatributo oñemboguapýva <body>. Ojejuhúramo jQuery, Bootstrap omosẽta umi mbaꞌe ojehúva jQuery sistema mbaꞌe ojehúva rupive. Upéicharamo, rehenduséramo Bootstrap mbaꞌe ojehúva, reipuruvaꞌerã umi jQuery rembiaporã ( .on, .one) , rangue addEventListener.

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

API programática rehegua

Opaite constructor omoneĩ peteĩ mbaꞌe opción opcional térã mbaꞌeve (omoñepyrũva peteĩ plugin ijeiko por defecto reheve):

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

Ojehupytyséramo peteĩ instancia plugin rehegua, peteĩteĩva plugin ohechauka peteĩ getInstancemétodo. Ojegueru hagua directamente petet elementogui, ojejapo kóicha: bootstrap.Popover.getInstance(myPopoverEl).

CSS poravohakuéra umi constructor-pe

Ikatu avei eipuru peteĩ CSS jeporavoha peteĩha argumento ramo peteĩ elemento DOM rangue emoñepyrũ hag̃ua plugin. Ko’áĝaite pe elemento plugin-pe g̃uarã ojejuhu querySelectormétodo rupive ñande plugins oipytyvõ guive peteĩ elemento añoite.

var modal = new bootstrap.Modal('#myModal')
var dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')

Funciones ha transiciones asíncronas rehegua

Opaite API programático método haꞌehína asíncrono ha ojevy jey ohenóivape oñepyrũ rire pe transición ha katu opa mboyve .

Ojejapo hag̃ua peteĩ tembiapo ojejapopa rire pe transición, ikatu oñehendu pe mbaꞌe ojehúva okorrespondéva.

var myCollapseEl = document.getElementById('myCollapse')

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

Avei oñemboykéta peteĩ ñehenói método rehegua peteĩ componente oñembohasáva rehe .

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 !!

Ñembohekorã ñepyrũrã

Ikatu emoambue ñemboheko tee peteĩ plugin-pe g̃uarã emoambuévo pe plugin Constructor.Defaultmba’ekuaarã:

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

Ndaipóri joavy (reiporúramo jQuery añoite)

Sapy’ánte tekotevẽ ojepuru Bootstrap mboajepyréva ambue UI rembiapokue ndive. Ko’ã mba’épe, ikatu sapy’apy’a oiko umi choque espacio de nombre rehegua. Péva oikóramo, ikatu ehenói .noConflictpe plugin rembojevysévape pe valor.

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

Umi número de versión rehegua

Pe versión peteĩteĩva Bootstrap plugin rehegua ikatu ojeike VERSIONpe plugin apoha mbaꞌekuaarã rupive. Techapyrã, tembipuru’i ñembohekorãme g̃uarã:

bootstrap.Tooltip.VERSION // => "5.1.3"

Ndaipóri fallback especial oñembogue jave JavaScript

Bootstrap plugins ndo’ái tapykuépe particularmente gracioso JavaScript oñembogue jave. Ejepy’apýramo puruhára jeikove rehe ko kásope, eipuru <noscript>emyesakã hag̃ua mba’éichapa oĩ (ha mba’éichapa ikatu emboguata jey JavaScript) ne puruhárape, ha/térã emoĩve ne mba’e’oka jeporupyre.

Mbohapyha arandukakuéra rehegua

Bootstrap ndoipytyvõi oficialmente mbohapýha JavaScript aranduka’i Prototype térã jQuery UI-icha. Jepémo .noConflictha umi mba’e ojehúva téra espacio-pe, ikatu oĩ apañuãi compatibilidad rehegua tekotevẽva remyatyrõ ndejehegui.

Desinfectante rehegua

Tooltips ha Popovers oipuru ore desinfectante incorporado omopotĩ hag̃ua opción omoneĩva HTML.

Pe allowListmba’ekuaarã tee ha’e ko’ãva:

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: []
}

Emoĩséramo mba’ekuaarã pyahu ko ñepyrũrãme allowListikatu rejapo ko’ã mba’e:

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)

Redesviaséramo ore desinfectante reiporusevégui peteĩ biblioteca dedicada, techapyrãramo DOMPurify , rejapova’erã ko’ã mba’e:

var yourTooltipEl = document.getElementById('yourTooltip')
var tooltip = new bootstrap.Tooltip(yourTooltipEl, {
  sanitizeFn: function (content) {
    return DOMPurify.sanitize(content)
  }
})