精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

JavaScript

Bring Bootstrap to life with our optional JavaScript plugins. Learn about each plugin, our data and programmatic API options, and more.

Individual or compiled

Plugins can be included individually (using Bootstrap’s individual js/dist/*.js), or all at once using bootstrap.js or the minified bootstrap.min.js (don’t include both).

If you use a bundler (Webpack, Rollup…), you can use /js/dist/*.js files which are UMD ready.

Using Bootstrap as a module

We provide a version of Bootstrap built as ESM (bootstrap.esm.js and bootstrap.esm.min.js) which allows you to use Bootstrap as a module in your browser, if your targeted browsers support it.

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

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

Incompatible plugins

Due to browser limitations, some of our plugins, namely Dropdown, Tooltip and Popover plugins, cannot be used in a <script> tag with module type because they depend on Popper. For more information about the issue see here.

Dependencies

Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs.

Our dropdowns, popovers and tooltips also depend on Popper.

Still want to use jQuery? It’s possible!

Bootstrap 5 is designed to be used without jQuery, but it’s still possible to use our components with jQuery. If Bootstrap detects jQuery in the window object it’ll add all of our components in jQuery’s plugin system; this means you’ll be able to do $('[data-bs-toggle="tooltip"]').tooltip() to enable tooltips. The same goes for our other components.

Data attributes

Nearly all Bootstrap plugins can be enabled and configured through HTML alone with data attributes (our preferred way of using JavaScript functionality). Be sure to only use one set of data attributes on a single element (e.g., you cannot trigger a tooltip and modal from the same button.)

Selectors

Currently to query DOM elements we use the native methods querySelector and querySelectorAll for performance reasons, so you have to use valid selectors. If you use special selectors, for example: collapse:Example be sure to escape them.

Events

Bootstrap provides custom events for most plugins' unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. show) is triggered at the start of an event, and its past participle form (ex. shown) is triggered on the completion of an action.

All infinitive events provide preventDefault() functionality. This provides the ability to stop the execution of an action before it starts. Returning false from an event handler will also automatically call preventDefault().

var myModal = document.getElementById('myModal')

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

jQuery events

Bootstrap will detect jQuery if jQuery is present in the window object and there is no data-bs-no-jquery attribute set on <body>. If jQuery is found, Bootstrap will emit events thanks to jQuery’s event system. So if you want to listen to Bootstrap’s events, you’ll have to use the jQuery methods (.on, .one) instead of addEventListener.

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

Programmatic API

All constructors accept an optional options object or nothing (which initiates a plugin with its default behavior):

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

If you’d like to get a particular plugin instance, each plugin exposes a getInstance method. In order to retrieve it directly from an element, do this: bootstrap.Popover.getInstance(myPopoverEl).

CSS selectors in constructors

You can also use a CSS selector as the first argument instead of a DOM element to initialize the plugin. Currently the element for the plugin is found by the querySelector method since our plugins support a single element only.

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

Asynchronous functions and transitions

All programmatic API methods are asynchronous and return to the caller once the transition is started but before it ends.

In order to execute an action once the transition is complete, you can listen to the corresponding event.

var myCollapseEl = document.getElementById('#myCollapse')

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

In addition a method call on a transitioning component will be ignored.

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

Default settings

You can change the default settings for a plugin by modifying the plugin’s Constructor.Default object:

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

No conflict (only if you use jQuery)

Sometimes it is necessary to use Bootstrap plugins with other UI frameworks. In these circumstances, namespace collisions can occasionally occur. If this happens, you may call .noConflict on the plugin you wish to revert the value of.

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

Version numbers

The version of each of Bootstrap’s plugins can be accessed via the VERSION property of the plugin’s constructor. For example, for the tooltip plugin:

bootstrap.Tooltip.VERSION // => "5.0.0-beta3"

No special fallbacks when JavaScript is disabled

Bootstrap’s plugins don’t fall back particularly gracefully when JavaScript is disabled. If you care about the user experience in this case, use <noscript> to explain the situation (and how to re-enable JavaScript) to your users, and/or add your own custom fallbacks.

Third-party libraries

Bootstrap does not officially support third-party JavaScript libraries like Prototype or jQuery UI. Despite .noConflict and namespaced events, there may be compatibility problems that you need to fix on your own.

Sanitizer

Tooltips and Popovers use our built-in sanitizer to sanitize options which accept HTML.

The default allowList value is the following:

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

If you want to add new values to this default allowList you can do the following:

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)

If you want to bypass our sanitizer because you prefer to use a dedicated library, for example DOMPurify, you should do the following:

var yourTooltipEl = document.getElementById('yourTooltip')
var tooltip = new bootstrap.Tooltip(yourTooltipEl, {
sanitizeFn: function (content) {
return DOMPurify.sanitize(content)
}
})
返回頂部
精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

      亚洲国产精品热久久| 国产视频久久久久久久| 在线观看日韩精品| 久久亚洲不卡| 在线观看亚洲视频啊啊啊啊| 免费不卡亚洲欧美| 99伊人成综合| 国产欧美在线| 欧美激情一区| 欧美一区二区在线视频| 亚洲成人在线视频播放| 国产精品国产亚洲精品看不卡15 | 欧美亚洲免费| 91久久精品美女高潮| 欧美日韩一级片在线观看| 中文久久精品| 亚洲欧洲美洲综合色网| 国产精品永久免费在线| 免费在线观看一区二区| 久久精品噜噜噜成人av农村| 夜夜精品视频| 一本色道久久综合亚洲精品不卡| 国产一区在线观看视频| 国产欧美日韩一区二区三区在线| 久久躁狠狠躁夜夜爽| 久久久国产视频91| 欧美一级黄色录像| 久久精品国产欧美激情| 久久国产精品色婷婷| 久久国产精品第一页| 久久三级福利| 欧美国产亚洲视频| 国产精品高潮呻吟| 国产亚洲欧美日韩一区二区| 国产欧美亚洲视频| 国语自产精品视频在线看一大j8| 狠狠色狠狠色综合人人| 亚洲激情在线| 亚洲午夜免费福利视频| 久久久精品网| 欧美精品尤物在线| 国产精品亚洲а∨天堂免在线| 国产亚洲观看| 亚洲国产老妈| 亚洲欧美久久久久一区二区三区| 欧美一级在线视频| 欧美成人午夜剧场免费观看| 欧美日韩美女在线观看| 国产一区二区三区四区五区美女| 国产综合色在线| 日韩一区二区精品| 欧美亚洲视频一区二区| 欧美激情第8页| 18成人免费观看视频| 亚洲欧美在线视频观看| 国产精品初高中精品久久| 亚洲激情综合| 久久字幕精品一区| 黑人一区二区| 久久免费观看视频| 在线观看亚洲精品视频| 老鸭窝91久久精品色噜噜导演| 国产欧美日韩精品在线| 久久精品亚洲一区二区| 黄色欧美成人| 欧美阿v一级看视频| 亚洲日本免费电影| 欧美美女bb生活片| 亚洲一区亚洲二区| 国产一级久久| 蜜臀av性久久久久蜜臀aⅴ| 伊人久久婷婷| 国产精品午夜电影| 欧美暴力喷水在线| 亚洲专区欧美专区| 在线欧美电影| 国产精品黄页免费高清在线观看| 亚洲欧美国产高清| 亚洲黄页视频免费观看| 欧美日韩国产一区精品一区| 一区二区三区四区蜜桃| 国产性天天综合网| 欧美成人午夜激情在线| 欧美一级精品大片| 亚洲激情在线视频| 国产日韩精品在线观看| 欧美日韩国产综合视频在线观看中文| 亚洲视频axxx| 亚洲图片欧美一区| 91久久线看在观草草青青| 国产无遮挡一区二区三区毛片日本| 欧美精品成人| 欧美二区不卡| 免费久久99精品国产| 久久九九精品| 久久夜色精品国产噜噜av| 久久精品99久久香蕉国产色戒| 亚洲男人第一av网站| 亚洲私人影院| 亚洲午夜一级| 久久黄色网页| 久久久久一区二区| 蜜臀久久99精品久久久久久9| 久久久91精品国产| 免费观看成人| 国产精品v片在线观看不卡| 国产精品视区| 亚洲国产1区| 亚洲欧美电影院| 老牛嫩草一区二区三区日本| 欧美日韩大片一区二区三区| 国产精品另类一区| 亚洲国产日韩精品| 亚洲一区二区三区免费视频| 亚洲午夜国产一区99re久久| 欧美一级夜夜爽| 欧美日韩三级| 亚洲国产成人精品女人久久久 | 国产一区二区三区在线免费观看| 国产亚洲欧洲997久久综合| 精品999成人| 欧美在现视频| 国产精品一区二区你懂得| 亚洲国产高潮在线观看| 亚洲小说春色综合另类电影| 久久中文字幕一区| 国产精品永久免费视频| 中日韩男男gay无套| 欧美日韩成人在线视频| 亚洲高清精品中出| 欧美成人网在线| 99re66热这里只有精品4| 欧美精品乱人伦久久久久久 | 韩国精品在线观看| 欧美伊人久久久久久午夜久久久久| 蜜臀va亚洲va欧美va天堂| 欧美日韩高清在线| 国产精品推荐精品| 久久久人人人| 亚洲欧洲一区二区三区| 欧美午夜在线观看| 欧美中日韩免费视频| 在线免费观看成人网| 欧美日韩国产限制| 久久精品成人欧美大片古装| 亚洲美女区一区| 国模一区二区三区| 国产精品成人免费| 久久精品91久久香蕉加勒比| 亚洲乱码国产乱码精品精98午夜| 国产精品xxxxx| 欧美国产丝袜视频| 久久精品中文| 香蕉尹人综合在线观看| 一区二区三区鲁丝不卡| 国外成人网址| 一区免费在线| 亚洲高清在线观看| 亚洲国产第一| 国产日韩一区二区三区| 欧美日韩蜜桃| 一本色道久久综合亚洲精品按摩| 黑丝一区二区| 国产一区深夜福利| 国产在线不卡精品| 国产视频一区二区在线观看| 国产色综合网| 激情欧美一区二区三区| 精品盗摄一区二区三区| 亚洲国产成人av| 正在播放亚洲一区| 欧美一区二区三区在线视频| 久久国产免费看| 欧美成人在线免费观看| 欧美精品www| 国产模特精品视频久久久久| 国产精品婷婷午夜在线观看| 国产日韩欧美高清免费| 亚洲高清av在线| 亚洲性夜色噜噜噜7777| 欧美一区二区在线看| 久久免费高清| 国产精品日日摸夜夜摸av| 精品不卡一区| 亚洲一区二区免费看| 麻豆精品在线视频| 欧美午夜精品理论片a级按摩| 国产日韩欧美日韩| av成人免费观看| 欧美ed2k| 在线国产亚洲欧美| 午夜精品在线视频| 欧美午夜精品理论片a级大开眼界| 国产自产精品| 亚洲午夜在线观看| 亚洲国产精品一区二区第一页| 国产婷婷色综合av蜜臀av | 国内揄拍国内精品少妇国语| 欧美与黑人午夜性猛交久久久| 国产伦精品一区二区三区在线观看|