我不知道该怎么做。看起来是这样的:
function MyObject() {
this.fireEvent("myEvent");
}
然后在一个单独的 JavaScript 文件中:
var obj = new MyObject();
obj.addEventListener("myEvent", function() {
alert("Event Fired");
});
但这当然行不通。我的问题是,我将如何去做这样的事情?
最佳答案
在您的示例中,您将在构造函数中立即触发事件(在附加事件监听器之前)。尝试将触发逻辑移至单独的函数中。
更新:
此外,您似乎没有正确触发事件。请参阅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);
}
}
关于javascript - 将自定义事件绑定(bind)到 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506071/