Skip to content

Commit 0873fe4

Browse files
committed
Fix events not bubbling
Close #745
1 parent cec460e commit 0873fe4

File tree

4 files changed

+59
-29
lines changed

4 files changed

+59
-29
lines changed

jquery.timepicker.js

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,12 @@
242242
hrs: "hrs"
243243
};
244244

245+
var EVENT_DEFAULTS = {
246+
bubbles: true,
247+
cancelable: false,
248+
detail: null
249+
};
250+
245251
var Timepicker = /*#__PURE__*/function () {
246252
function Timepicker(targetEl) {
247253
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -272,7 +278,7 @@
272278
}
273279

274280
this.list.hide();
275-
var hideTimepickerEvent = new CustomEvent('hideTimepicker');
281+
var hideTimepickerEvent = new CustomEvent('hideTimepicker', EVENT_DEFAULTS);
276282
this.targetEl.dispatchEvent(hideTimepickerEvent);
277283
}
278284
}, {
@@ -324,14 +330,14 @@
324330
}
325331
}
326332

327-
var selectTimeEvent = new CustomEvent('selectTime');
333+
var selectTimeEvent = new CustomEvent('selectTime', EVENT_DEFAULTS);
328334

329335
if (this.selectedValue != value) {
330336
this.selectedValue = value;
331-
var changeTimeEvent = new CustomEvent('changeTime');
332-
var changeEvent = new CustomEvent('change', {
337+
var changeTimeEvent = new CustomEvent('changeTime', EVENT_DEFAULTS);
338+
var changeEvent = new CustomEvent('change', Object.assign(EVENT_DEFAULTS, {
333339
detail: 'timepicker'
334-
});
340+
}));
335341

336342
if (source == "select") {
337343
this.targetEl.dispatchEvent(selectTimeEvent);
@@ -753,7 +759,7 @@
753759
var seconds = this.time2int(this.targetEl.value);
754760

755761
if (seconds === null) {
756-
var timeFormatErrorEvent = new CustomEvent('timeFormatError');
762+
var timeFormatErrorEvent = new CustomEvent('timeFormatError', EVENT_DEFAULTS);
757763
this.targetEl.dispatchEvent(timeFormatErrorEvent);
758764
return;
759765
}
@@ -797,7 +803,7 @@
797803
if (rangeError) {
798804
this._setTimeValue(prettyTime);
799805

800-
var timeRangeErrorEvent = new CustomEvent('timeRangeError');
806+
var timeRangeErrorEvent = new CustomEvent('timeRangeError', EVENT_DEFAULTS);
801807
this.targetEl.dispatchEvent(timeRangeErrorEvent);
802808
} else {
803809
this._setTimeValue(prettyTime, origin);
@@ -964,11 +970,11 @@
964970
if (typeof window.CustomEvent === "function") return false;
965971

966972
function CustomEvent(event, params) {
967-
params = params || {
968-
bubbles: false,
969-
cancelable: false,
970-
detail: null
971-
};
973+
if (!params) {
974+
params = {};
975+
}
976+
977+
params = Object.assign(EVENT_DEFAULTS, params);
972978
var evt = document.createEvent('CustomEvent');
973979
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
974980
return evt;

0 commit comments

Comments
 (0)