From 5d9633c302749afac5f5fa8e84100d8482527289 Mon Sep 17 00:00:00 2001 From: "zang.loo" Date: Thu, 21 Feb 2019 11:19:11 +0800 Subject: [PATCH 1/2] setup originalEvent for change event when value changed by user input --- js/bootstrap-checkbox.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/js/bootstrap-checkbox.js b/js/bootstrap-checkbox.js index caadf70..cef0935 100644 --- a/js/bootstrap-checkbox.js +++ b/js/bootstrap-checkbox.js @@ -179,24 +179,29 @@ var $button = $(event.currentTarget); if (!$button.hasClass('active') || this.options.switchAlways) { - this.change(); + this.change(event); } }, - change: function() { - this.set(!this.element.checked); + change: function(originalEvent) { + this.set(!this.element.checked, originalEvent); }, - set: function(value) { + set: function(value, originalEvent) { // Fix #12 this.element.checked = value; - this.$element.trigger('change'); + if (originalEvent){ + var e = jQuery.Event("change", {originalEvent: originalEvent}); + this.$element.trigger(e); + } else { + this.$element.trigger('change'); + } }, keydown: function(event) { if ($.inArray(event.keyCode, this.options.toggleKeyCodes) !== -1) { // Off vertical scrolling on Spacebar event.preventDefault(); - this.change(); + this.change(event); } else if (event.keyCode === 13) { $(this.element.form).trigger('submit'); } From 46d38211e2bb5433343159d9ee90555c7ffbdc5b Mon Sep 17 00:00:00 2001 From: "zang.loo" Date: Fri, 22 Feb 2019 09:11:45 +0800 Subject: [PATCH 2/2] update for npm test failed --- js/bootstrap-checkbox.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/bootstrap-checkbox.js b/js/bootstrap-checkbox.js index cef0935..8f2d3e3 100644 --- a/js/bootstrap-checkbox.js +++ b/js/bootstrap-checkbox.js @@ -190,7 +190,7 @@ this.element.checked = value; if (originalEvent){ - var e = jQuery.Event("change", {originalEvent: originalEvent}); + var e = jQuery.Event('change', { originalEvent: originalEvent }); this.$element.trigger(e); } else { this.$element.trigger('change');