mat*_*ala 10 javascript javascript-events
我不能在IE中使用Javascript来发起个人事件.在Firefox中工作很棒.
我的代码是:
var evento;
if(document.createEventObject)
{
evento = document.createEventObject();
document.fireEvent('eventoPersonal', evento);
}
//FF
else
{
evento = document.createEvent('Events');
evento.initEvent('eventoPersonal',true,false);
document.dispatchEvent(evento);
}
Run Code Online (Sandbox Code Playgroud)
但是当尝试document.fireEvent('eventoPersonal', evento);在IE中执行时,它不起作用.如何在IE中解除自定义事件?
在Internet Explorer中,我在执行的行中收到错误:"无效的参数" document.fireEvent('eventoPersonal', evento);
Oke*_*oke 39
Dean Edward's描述了如何在IE中解决cutom事件
http://dean.edwards.name/weblog/2009/03/callbacks-vs-events/
它靠近文章的底部
var currentHandler;
if (document.addEventListener) {
// We've seen this code already
} else if (document.attachEvent) { // MSIE
document.documentElement.fakeEvents = 0; // an expando property
document.documentElement.attachEvent("onpropertychange", function(event) {
if (event.propertyName == "fakeEvents") {
// execute the callback
currentHandler();
}
});
dispatchFakeEvent = function(handler) {
// fire the propertychange event
document.documentElement.fakeEvents++;
};
}
Run Code Online (Sandbox Code Playgroud)
您可能需要考虑使用库来抽象它。两个原型 jquery 都会为你处理这个问题。Jquery 特别擅长让您使用非常简单的代码创建事件。
Jquery 的文档可以在这里找到: http: //docs.jquery.com/Events