|
4 | 4 | // Helper function for dispatching cross browser dispatch events
|
5 | 5 | // from http://youmightnotneedjquery.com/#trigger_custom
|
6 | 6 | function dispatchEvent (el, eventName) {
|
7 |
| - var event; |
8 |
| - |
9 | 7 | // IE < Edge Polyfill
|
10 | 8 | // from https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
|
11 |
| - (function () { |
12 |
| - if ( typeof window.CustomEvent === "function" ) return false; |
13 |
| - |
14 |
| - function CustomEvent ( event, params ) { |
15 |
| - params = params || { bubbles: false, cancelable: false, detail: undefined }; |
16 |
| - var evt = document.createEvent( 'CustomEvent' ); |
17 |
| - evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail ); |
18 |
| - return evt; |
19 |
| - } |
| 9 | + function _CustomEvent (event, params) { |
| 10 | + params = params || { bubbles: false, cancelable: false, detail: undefined }; |
| 11 | + var evt = document.createEvent('CustomEvent'); |
| 12 | + evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); |
| 13 | + return evt; |
| 14 | + } |
20 | 15 |
|
21 |
| - CustomEvent.prototype = window.Event.prototype; |
| 16 | + _CustomEvent.prototype = global.Event.prototype; |
22 | 17 |
|
23 |
| - window.CustomEvent = CustomEvent; |
24 |
| - })(); |
| 18 | + var event; |
25 | 19 |
|
26 |
| - if (window.CustomEvent) { |
27 |
| - event = new CustomEvent(eventName); |
| 20 | + if (global.CustomEvent) { |
| 21 | + event = new global.CustomEvent(eventName); |
28 | 22 | } else {
|
29 |
| - event = document.createEvent('CustomEvent'); |
30 |
| - event.initCustomEvent(eventName, true, true); |
| 23 | + event = new _CustomEvent(eventName) |
31 | 24 | }
|
32 | 25 |
|
33 |
| - el.dispatchEvent(event); |
| 26 | + event && el.dispatchEvent(event); |
34 | 27 | }
|
35 | 28 |
|
36 | 29 | // Helper function to get all focusable children from a node
|
|
0 commit comments