- commit
- 993bb84d2f22418a3c82597486c929d9f42886c8
- parent
- df1624378bdf47b7f5b1a34cb6f89a0afa661b85
- Author
- Tobias Bengfort <tobias.bengfort@gmx.net>
- Date
- 2015-08-30 20:23
expand createEvent
Diffstat
| M | src/muu-directive.js | 3 | ++- |
| M | src/muu-dom-helpers.js | 12 | ++++++++---- |
| M | test/test-dom-helpers.js | 14 | +++++++++++++- |
3 files changed, 23 insertions, 6 deletions
diff --git a/src/muu-directive.js b/src/muu-directive.js
@@ -42,7 +42,8 @@ define('muu-directive', ['muu-dom-helpers', 'muu-js-helpers', 'muu-update-dom'],
42 42 var attrName = 'data-on' + originalEvent.type;
43 43 if (originalEvent.target.hasAttribute(attrName)) {
44 44 var eventName = originalEvent.target.getAttribute(attrName);
45 -1 var event = $.createEvent('muu-' + eventName, originalEvent);
-1 45 var event = $.createEvent(
-1 46 'muu-' + eventName, undefined, undefined, originalEvent);
46 47 root.dispatchEvent(event);
47 48 }
48 49 };
diff --git a/src/muu-dom-helpers.js b/src/muu-dom-helpers.js
@@ -37,19 +37,23 @@ define("muu-dom-helpers", ['muu-js-helpers'], function(_) {
37 37 * with this.
38 38 *
39 39 * @param {string} type
40 -1 * @param {*} detail
-1 40 * @param {boolean} [bubbles]
-1 41 * @param {boolean} [cancelable]
-1 42 * @param {*} [detail]
41 43 * @return {Event}
42 44 * @see https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
43 45 * @nosideeffects
44 46 */
45 -1 $.createEvent = function(type, detail) {
-1 47 $.createEvent = function(type, bubbles, cancelable, detail) {
46 48 if (typeof CustomEvent === 'function') {
47 49 return new CustomEvent(type, {
48 -1 detail: detail
-1 50 detail: detail,
-1 51 bubbles: bubbles,
-1 52 cancelable: cancelable
49 53 });
50 54 } else {
51 55 var event = document.createEvent('CustomEvent');
52 -1 event.initCustomEvent(type, false, true, detail);
-1 56 event.initCustomEvent(type, bubbles, cancelable, detail);
53 57 return event;
54 58 }
55 59 };
diff --git a/test/test-dom-helpers.js b/test/test-dom-helpers.js
@@ -25,9 +25,21 @@ define(['muu-dom-helpers'], function($) {
25 25 expect(event.type).to.equal('foobar');
26 26 });
27 27 it('creates an event with specified details', function() {
28 -1 var event = $.createEvent('foobar', 37);
-1 28 var event = $.createEvent('foobar', undefined, undefined, 37);
29 29 expect(event.detail).to.equal(37);
30 30 });
-1 31 it('creates an event with specified bubbles', function() {
-1 32 var event1 = $.createEvent('foobar', true);
-1 33 expect(event1.bubbles).to.be(true);
-1 34 var event2 = $.createEvent('foobar', false);
-1 35 expect(event2.bubbles).to.be(false);
-1 36 });
-1 37 it('creates an event with specified cancelable', function() {
-1 38 var event1 = $.createEvent('foobar', undefined, true);
-1 39 expect(event1.cancelable).to.be(true);
-1 40 var event2 = $.createEvent('foobar', undefined, false);
-1 41 expect(event2.cancelable).to.be(false);
-1 42 });
31 43 });
32 44
33 45 describe('on', function() {