2012-03-27 40 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