59 lines
1.7 KiB
ReStructuredText
59 lines
1.7 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _breaking-101820:
|
|
|
|
=======================================================================
|
|
Breaking: #101820 - Remove bootstrap jQuery interface and window.jQuery
|
|
=======================================================================
|
|
|
|
See :issue:`101820`
|
|
|
|
Description
|
|
===========
|
|
|
|
The bootstrap jQuery interfaces required a global :js:`window.jQuery` variable
|
|
to be set. The jquery drop-in is dropped in order to remove this non-optional
|
|
jQuery dependency.
|
|
|
|
As a side effect the :js:`window.jQuery` global is removed as well.
|
|
Note that global jQuery usage has already been deprecated in :issue:`86438` and
|
|
removed in :issue:`97243` with the suggestion to use JavaScript modules instead.
|
|
:js:`window.jQuery` was basically left in place for bootstrap to operate and
|
|
therefore only :js:`window.$` was removed back then.
|
|
|
|
Impact
|
|
======
|
|
|
|
Loading the ES6 'bootstrap' module no longer has side effects, as the global
|
|
scope :js:`window` is no longer polluted by writing to the property :js:`jQuery`.
|
|
This also means jQuery will no longer be loaded when it is not actually needed.
|
|
|
|
Affected Installations
|
|
======================
|
|
|
|
All installations that use bootstrap's jQuery interface or applications that
|
|
use `window.jQuery` to invoke jQuery.
|
|
|
|
Following method calls are affected:
|
|
|
|
- :js:`$(…).alert()`
|
|
- :js:`$(…).button()`
|
|
- :js:`$(…).carousel()`
|
|
- :js:`$(…).collapse()`
|
|
- :js:`$(…).dropdown()`
|
|
- :js:`$(…).tab()`
|
|
- :js:`$(…).modal()`
|
|
- :js:`$(…).offcanvas()`
|
|
- :js:`$(…).popover()`
|
|
- :js:`$(…).scrollspy()`
|
|
- :js:`$(…).toast()`
|
|
- :js:`$(…).tooltip()`
|
|
|
|
|
|
Migration
|
|
=========
|
|
|
|
Use bootstrap's ES6 exports :js:`import { Carousel } from 'bootstrap';` instead.
|
|
|
|
.. index:: Backend, JavaScript, NotScanned, ext:core
|