我的任务是在不使用任何库(如jQuery或原型)的情况下在文档上触发自定义事件.
所以我对Firefox这样做很好:
function fireCustomEvent(eventData)
{
if (document.createEvent) // Firefox
{
var event = document.createEvent('HTMLEvents'); // create event
event.initEvent('myCustomEvent', true, true ); // name event
event.data = eventData; // put my stuff on it
document.dispatchEvent(event); // fire event
}
else if (document.createEventObject) // IE
{
xxxxxxxxxxx
}
}
Run Code Online (Sandbox Code Playgroud)
现在我可以像这样开火:
fireCustomEvent({
category: 'test',
value: 123
});
Run Code Online (Sandbox Code Playgroud)
并像这样捕获它(这里我可以使用jQuery):
$(document).bind('myCustomEvent', function (event) {
doStuff(event);
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,我可以做些什么来使这项工作在IE上(换句话说,我把xxxxxxxxxxx放在哪里)?
我认为IE等效应该看起来像这样:
var event = document.createEventObject();
event.data = eventData;
document.fireEvent('myCustomEvent', event);
Run Code Online (Sandbox Code Playgroud)
但这不起作用.IE让我只使用预定义的事件名称(onclick等),甚至其中一些不起作用(例如onmessage)
任何帮助或想法表示赞赏!