mirror of
https://github.com/twbs/bootstrap.git
synced 2025-08-07 22:26:57 +02:00
Allow constructors to accept a CSS selector (#32245)
Co-authored-by: XhmikosR <xhmikosr@gmail.com> Co-authored-by: Mark Otto <otto@github.com>
This commit is contained in:
@@ -17,12 +17,14 @@ const VERSION = '5.0.0-beta2'
|
||||
|
||||
class BaseComponent {
|
||||
constructor(element) {
|
||||
element = typeof element === 'string' ? document.querySelector(element) : element
|
||||
|
||||
if (!element) {
|
||||
return
|
||||
}
|
||||
|
||||
this._element = element
|
||||
Data.setData(element, this.constructor.DATA_KEY, this)
|
||||
Data.setData(this._element, this.constructor.DATA_KEY, this)
|
||||
}
|
||||
|
||||
dispose() {
|
||||
|
@@ -72,8 +72,8 @@ class Collapse extends BaseComponent {
|
||||
this._isTransitioning = false
|
||||
this._config = this._getConfig(config)
|
||||
this._triggerArray = SelectorEngine.find(
|
||||
`${SELECTOR_DATA_TOGGLE}[href="#${element.id}"],` +
|
||||
`${SELECTOR_DATA_TOGGLE}[data-bs-target="#${element.id}"]`
|
||||
`${SELECTOR_DATA_TOGGLE}[href="#${this._element.id}"],` +
|
||||
`${SELECTOR_DATA_TOGGLE}[data-bs-target="#${this._element.id}"]`
|
||||
)
|
||||
|
||||
const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
|
||||
@@ -82,7 +82,7 @@ class Collapse extends BaseComponent {
|
||||
const elem = toggleList[i]
|
||||
const selector = getSelectorFromElement(elem)
|
||||
const filterElement = SelectorEngine.find(selector)
|
||||
.filter(foundElem => foundElem === element)
|
||||
.filter(foundElem => foundElem === this._element)
|
||||
|
||||
if (selector !== null && filterElement.length) {
|
||||
this._selector = selector
|
||||
|
@@ -83,7 +83,7 @@ class Modal extends BaseComponent {
|
||||
super(element)
|
||||
|
||||
this._config = this._getConfig(config)
|
||||
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)
|
||||
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)
|
||||
this._backdrop = null
|
||||
this._isShown = false
|
||||
this._isBodyOverflowing = false
|
||||
|
@@ -68,7 +68,7 @@ const METHOD_POSITION = 'position'
|
||||
class ScrollSpy extends BaseComponent {
|
||||
constructor(element, config) {
|
||||
super(element)
|
||||
this._scrollElement = element.tagName === 'BODY' ? window : element
|
||||
this._scrollElement = this._element.tagName === 'BODY' ? window : this._element
|
||||
this._config = this._getConfig(config)
|
||||
this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`
|
||||
this._offsets = []
|
||||
|
Reference in New Issue
Block a user