如何检查元素是否有点击处理程序?

可能重复:
测试事件处理程序是否绑定到jQuery中的元素

试图做以下(链接是’a’标签的jQuery对象):

link.data("events") //undefined even if link has event handlers jQuery.data(link, 'events') //undefined always also jQuery._data(link, 'events') //undefined always also 

使用jquery-1.8.3

那么,如何检查元素是否有点击处理程序?

您可以使用jQuery._data来检查事件。 第一个参数应该是对HTML元素的引用,而不是对jQuery对象的引用。

 var ev = $._data(element, 'events'); if(ev && ev.click) alert('click bound'); 

以下示例。

 $(function(){ $('#test').click(function(){ // NOTE: this below is refering to the HTML element, NOT the jQuery element var ev = $._data(this, 'events'); if(ev && ev.click) alert('click bound to this button'); }); });