2012-08-31 88 views
21

如何在jQuery 1.8+中的对象上查找事件处理程序?jQuery 1.8查找事件处理程序

var func = function(){ alert(1); }; 
var obj = $('#obj'); 
obj.on("click", func); 
// obj.data('events') is undefined 
+0

似乎是一个很好的问题,你可以在1.8测试它这个js小提琴http://jsfiddle.net/968jj/ – Blowsie

回答

30

使用数据功能as is done by jQuery internally

在以前的版本,你可以把它像其他数据:

obj.data('events'); 

在jQuery的1.8,this direct access was removed,所以在最近的版本中,你必须这样称呼它:

$._data(obj[0], "events") 

你可以通过在这个小提琴中打开控制台看到它在行动:http://jsfiddle.net/8TpeP/2/

+1

这并不工作,测试它自己这里的http://的jsfiddle。 net/968jj/ – Blowsie

+1

@Blowsie是的,我在测试 –

+1

之后编辑了一个链接到一个工作示例? – Blowsie

5

查找在jQuery 1.8 +中的元素的事件处理程序,你必须这样做:

$._data($("YOUR-SELECTOR-HERE").get(0), "events")

+3

或简要说明:'$ ._ data($(“YOUR-SELECTOR-HERE”)[0],“events”)' – Mohsenme