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.
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.js.
However, in some situations it may be desirable to disable this functionality. To disable the data attribute API, unbind all events on the document namespaced with
data-api like so:
Alternatively, to target a specific plugin, just include the plugin’s name as a namespace along with the data-api namespace like this:
Currently to query DOM elements we use the native methods
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.
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
All methods should accept an optional options object, a string which targets a particular method, or nothing (which initiates a plugin with default behavior):
Each plugin also exposes its raw constructor on a
$.fn.popover.Constructor. If you’d like to get a particular plugin instance, retrieve it directly from an element:
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.
In addition a method call on a transitioning component will be ignored.
You can change the default settings for a plugin by modifying the plugin’s
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.
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:
.noConflict and namespaced events, there may be compatibility problems that you need to fix on your own.
bootstrap.js, there is no need to include this—it’s already there.
util.js includes utility functions and a basic helper for
transitionEnd events as well as a CSS transition emulator. It’s used by the other plugins to check for CSS transition support and to catch hanging transitions.
Tooltips and Popovers use our built-in sanitizer to sanitize options which accept HTML.
whiteList value is the following:
If you want to add new values to this default
whiteList you can do the following:
If you want to bypass our sanitizer because you prefer to use a dedicated library, for example DOMPurify, you should do the following:
Compatibility with IE 11
Bootstrap v5 isn’t designed to work with Internet Explorer 11, but you can add the following polyfills to make it work: