2012-03-27 44 views

回答

1

沒有,你可以在普通對象使用.on.off,只要你記住,這將對象添加額外的屬性。

var obj = {}; 

$(obj).on("mycustomevent",function(){ 
    alert("mycustomevent triggered"); 
    $(this).off("mycustomevent").trigger("mycustomevent"); 
}).trigger("mycustomevent"); // fires off one alert. 

但我必須問,在什麼情況下將事件綁定到對象是有意義的?爲什麼不給對象一個可以調用的方法?

+0

它結合並觸發情形 – coool 2012-03-27 18:50:51

+0

權,但你可以給對象的方法,如obj.addEvent(名稱,回調)或OBJ。 on(name,callback),然後爲對象提供另一個稱爲觸發器的方法,它觸發給定的事件名稱。新的jQuery的'.Callbacks()'方法在這種設置中會有很大的幫助。 – 2012-03-27 18:53:49

+1

這裏有一個答案我用一個例子最近公佈:http://stackoverflow.com/questions/9099555/jquery-bind-events-on-plain-javascript-objects/9101404#9101404在這個問題的答案我使用的是類,但它可以很容易地在一個對象上實現。 – 2012-03-27 18:55:21