JQuery检查事件绑定

时间:2013-10-04 12:39:10

标签: jquery events binding

我需要检查一些事件是否已绑定在一个元素上。

例如

$(".animate").click(function(){
    alert('Here comes action');
}); 

$(".someOtherSelector").click(function(){
    alert('some other action');
});

HTML

<a class="animate"></a>
<a class="someOtherSelector animate"></a>

在第二个函数中,我需要检查是否有一个事件已绑定在此元素上。如果是这样,它不应该执行alert('some other action');

我正在使用jQuery版本1.10.1。

2 个答案:

答案 0 :(得分:2)

您可以获取事件$(".someOtherSelector").data('events'),然后检查所需事件是否存在。

​var events = $._data( $(".someOtherSelector")[0], "events" );
if(events.indexOf("click") == -1) {
  $(".someOtherSelector").click(function(){
    alert('some other action');
  });
}

答案 1 :(得分:1)

jQuery 1.8 起,event data不再适用于数据。阅读此jQuery blog post。你现在应该使用它:

jQuery._data(element, "events")

<强>代码

$('.someOtherSelector').each(function(){
    console.log($._data(this, "events"));
});

Fiddle