1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| module.exports = dispatchEvent
|
| function dispatchEvent(ev) {
| var elem = this
| var type = ev.type
|
| if (!ev.target) {
| ev.target = elem
| }
|
| if (!elem.listeners) {
| elem.listeners = {}
| }
|
| var listeners = elem.listeners[type]
|
| if (listeners) {
| return listeners.forEach(function (listener) {
| ev.currentTarget = elem
| if (typeof listener === 'function') {
| listener(ev)
| } else {
| listener.handleEvent(ev)
| }
| })
| }
|
| if (elem.parentNode) {
| elem.parentNode.dispatchEvent(ev)
| }
| }
|
|