35 lines
894 B
JavaScript
35 lines
894 B
JavaScript
import defaultView from "../window.js";
|
|
|
|
function dispatchEvent(node, type, params) {
|
|
var window = defaultView(node),
|
|
event = window.CustomEvent;
|
|
|
|
if (typeof event === "function") {
|
|
event = new event(type, params);
|
|
} else {
|
|
event = window.document.createEvent("Event");
|
|
if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
|
|
else event.initEvent(type, false, false);
|
|
}
|
|
|
|
node.dispatchEvent(event);
|
|
}
|
|
|
|
function dispatchConstant(type, params) {
|
|
return function() {
|
|
return dispatchEvent(this, type, params);
|
|
};
|
|
}
|
|
|
|
function dispatchFunction(type, params) {
|
|
return function() {
|
|
return dispatchEvent(this, type, params.apply(this, arguments));
|
|
};
|
|
}
|
|
|
|
export default function(type, params) {
|
|
return this.each((typeof params === "function"
|
|
? dispatchFunction
|
|
: dispatchConstant)(type, params));
|
|
}
|