1
在我的應用程序中,我有幾個不同的小部件。當一個人做出改變時,其他人也需要改變。我想讓他們分開。我沒有做太多的JavaScript編程,所以我不確定這樣做的典型方式。Javascript註冊事件監聽器
jquery中是否有任何排隊機制,所以我可以發佈一個事件說「prop X改變了值Y」,並且任何註冊到該隊列的人都可以得到通知?或者,這不是一種處理javascript事件的典型方式?
在我的應用程序中,我有幾個不同的小部件。當一個人做出改變時,其他人也需要改變。我想讓他們分開。我沒有做太多的JavaScript編程,所以我不確定這樣做的典型方式。Javascript註冊事件監聽器
jquery中是否有任何排隊機制,所以我可以發佈一個事件說「prop X改變了值Y」,並且任何註冊到該隊列的人都可以得到通知?或者,這不是一種處理javascript事件的典型方式?
在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 }));