javascript - 将自定义事件绑定(bind)到 JavaScript 对象?

标签 javascript events object binding

我不知道该怎么做。看起来是这样的:

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/

相关文章:

events - 等到所有事件监听器完成

jquery - 在 JQuery 中失去焦点时隐藏 ul

javascript - JavaScript 中的动态实例化

c++ - 使用 GTest 访问违规读取位置,无需任何复杂测试

javascript - 添加连续的字母作为对象键

javascript - Momentjs 显示评估少一天

javascript - 编码新手 - 如何在 Javascript 中保存子字符串

javascript - 不从 HTML 中删除不可见的元素不好吗?

Javascript 支持触摸而不阻止浏览器捏合支持

php - 如何获取上传文件的客户端路径