Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/button.js')
-rw-r--r--js/src/button.js13
1 files changed, 9 insertions, 4 deletions
diff --git a/js/src/button.js b/js/src/button.js
index d793785829..c95013a98c 100644
--- a/js/src/button.js
+++ b/js/src/button.js
@@ -46,6 +46,7 @@ const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`
class Button {
constructor(element) {
this._element = element
+ this.shouldAvoidTriggerChange = false
}
// Getters
@@ -83,7 +84,9 @@ class Button {
input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)
}
- $(input).trigger('change')
+ if (!this.shouldAvoidTriggerChange) {
+ $(input).trigger('change')
+ }
}
input.focus()
@@ -109,7 +112,7 @@ class Button {
// Static
- static _jQueryInterface(config) {
+ static _jQueryInterface(config, avoidTriggerChange) {
return this.each(function () {
const $element = $(this)
let data = $element.data(DATA_KEY)
@@ -119,6 +122,8 @@ class Button {
$element.data(DATA_KEY, data)
}
+ data.shouldAvoidTriggerChange = avoidTriggerChange
+
if (config === 'toggle') {
data[config]()
}
@@ -151,8 +156,8 @@ $(document)
return
}
- if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {
- Button._jQueryInterface.call($(button), 'toggle')
+ if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {
+ Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')
}
}
})