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.js
térã oñemboguejýva bootstrap.min.js
(ani oike mokõivéva).
Eipurúramo peteĩ bundler (Webpack, Rollup...), ikatu eipuru /js/dist/*.js
vore oĩva UMD-pe.
Oipurúvo Bootstrap peteĩ módulo ramo
Rome’ẽ peteĩ Bootstrap versión oñemopu’ãva ESM
( bootstrap.esm.js
ha 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 module
tipo-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 jQuery
mba’e’oka ryepýpe window
omoĩ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 querySelector
ha querySelectorAll
mba’e’apopyrã rehe, upévare reipuruva’erã umi selector añetegua . Oipurúramo selector especial, techapyrã: collapse:Example
katuete 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 jQuery
mba’e’oka’ípe window
ha ndaipóri data-bs-no-jquery
atributo 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ĩ getInstance
mé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 querySelector
mé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.Default
mba’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 .noConflict
pe 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 VERSION
pe 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 .noConflict
ha 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 allowList
mba’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 allowList
ikatu 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)
}
})