Javascript注册事件监听器

时间:2012-04-14 14:39:55

标签: javascript event-handling

在我的应用程序中,我有几个不同的小部件。当一个人做出改变时,其他人也需要改变。我想让他们脱钩。我没有做太多的javascript编程,所以我不确定这样做的典型方法。

在jquery中是否有任何排队机制,所以我可以发布一个事件,说“prop X change value Y”,并且可以通知注册到该队列的任何人?或者这不是在javascript中处理事件的典型方式吗?

1 个答案:

答案 0 :(得分:4)

在jquery中它很简单,你可以使用与标准事件相同的机制。

//register listener for "widget"
$("div#firstWidget").bind("myCustomEvent", function(e){
    alert(e.customFlag);
});

//somewhere else trigger event on widget
var e = $.Event("myCustomEvent");
e.customFlag = "customValue";
$("div#firstWidget").trigger(e);

您还可以提供一个全局事件总线,创建用于保存和分派事件的emtpy jquery对象

window.myEventBus = $([]);

//register listener
myEventBus.bind("customEvent", function(e){
    //handle event
});

//fire event
myEventBus.trigger($.Event("customEvent", { numProp:5, boolProp:true }));