mirror of
https://github.com/twbs/bootstrap.git
synced 2025-04-06 23:57:36 +02:00
Do not create a Popper.js instance when we don't need it
This commit is contained in:
parent
6b884dcd76
commit
6d00ed586b
@ -143,22 +143,25 @@ const Dropdown = (($) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// Disable totally Popper.js for Dropdown in Navbar
|
||||||
* Check for Popper dependency
|
if (!this._inNavbar) {
|
||||||
* Popper - https://popper.js.org
|
/**
|
||||||
*/
|
* Check for Popper dependency
|
||||||
if (typeof Popper === 'undefined') {
|
* Popper - https://popper.js.org
|
||||||
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')
|
*/
|
||||||
|
if (typeof Popper === 'undefined') {
|
||||||
|
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')
|
||||||
|
}
|
||||||
|
let element = this._element
|
||||||
|
// for dropup with alignment we use the parent as popper container
|
||||||
|
if ($(parent).hasClass(ClassName.DROPUP)) {
|
||||||
|
if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
|
||||||
|
element = parent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this._popper = new Popper(element, this._menu, this._getPopperConfig())
|
||||||
}
|
}
|
||||||
|
|
||||||
let element = this._element
|
|
||||||
// for dropup with alignment we use the parent as popper container
|
|
||||||
if ($(parent).hasClass(ClassName.DROPUP)) {
|
|
||||||
if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
|
|
||||||
element = parent
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this._popper = new Popper(element, this._menu, this._getPopperConfig())
|
|
||||||
|
|
||||||
// if this is a touch-enabled device we add extra
|
// if this is a touch-enabled device we add extra
|
||||||
// empty mouseover listeners to the body's immediate children;
|
// empty mouseover listeners to the body's immediate children;
|
||||||
@ -185,8 +188,8 @@ const Dropdown = (($) => {
|
|||||||
this._menu = null
|
this._menu = null
|
||||||
if (this._popper !== null) {
|
if (this._popper !== null) {
|
||||||
this._popper.destroy()
|
this._popper.destroy()
|
||||||
|
this._popper = null
|
||||||
}
|
}
|
||||||
this._popper = null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update() {
|
update() {
|
||||||
@ -275,12 +278,6 @@ const Dropdown = (($) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable Popper.js for Dropdown in Navbar
|
|
||||||
if (this._inNavbar) {
|
|
||||||
popperConfig.modifiers.applyStyle = {
|
|
||||||
enabled: !this._inNavbar
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return popperConfig
|
return popperConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user