You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
625 B
31 lines
625 B
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) |
|
} |
|
}
|
|
|