我无法弄明白该怎么做。它似乎是这样的:
function MyObject() {
this.fireEvent("myEvent");
}
然后在另一个JavaScript文件中:
var obj = new MyObject();
obj.addEventListener("myEvent", function() {
alert("Event Fired");
});
但当然它不起作用。我的问题是,我该怎么做呢?
答案 0 :(得分:4)
在您的示例中,您将在构造函数中立即触发事件(在附加事件侦听器之前)。尝试将触发逻辑移动到单独的函数中。
<强>更新强>:
此外,您似乎没有正确地开展活动。有关如何以跨浏览器方式正确触发事件的详细信息,请参阅this article。从那篇文章:
function fireEvent(element,event){
if (document.createEventObject){
// dispatch for IE
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt)
}
else{
// dispatch for firefox + others
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
}