【发布时间】:2014-08-06 04:43:15
【问题描述】:
如何监听 javascript 对象上的自定义事件?我正在尝试在触发事件后触发应用级对象的方法,但与DOM 元素不同,我无法为该对象注册侦听器。
如何构建我的应用程序以侦听触发事件,然后执行操作?
js:
$(document).ready(function(){
var app = {};
app.doStuff = function(){ alert("Yo!");};
$(app).on("myCustomEvent", function(){
alert("doing stuff");
app.doStuff();
});
$("body").on('click', "#trigger", function(){
alert("triggered");
$(this).trigger("myCustomEvent");
});
});
在 jsbin 中报告: http://jsbin.com/zopubuso/1/edit
这背后的原因:
我正在创建一个主干应用程序,其中我的app 对象中有一个全局事件通风口。我正在尝试通过触发事件在视图之间进行交流:
即。
app.on("myEvent", MyView.model.doStuff);
app.trigger("myEvent");
但我无法触发事件。
【问题讨论】:
-
这个库可能会帮助你:github.com/benjreinhart/node-event-emitter。它是 node.js 的
EventEmitter类的一个端口,也可以在浏览器中使用。
标签: javascript jquery