有没有办法在jQuery中检测元素是否已经绑定事件?

时间:2010-12-18 09:43:48

标签: jquery

在jQuery中是否有办法检测元素是否已经有绑定事件?

换句话说,我想只在元素之前没有绑定它时绑定一个事件..否则我会触发它两次。

我正在使用jQuery 1.2.7

3 个答案:

答案 0 :(得分:1)

$('#someId').data('events')

应该为您提供绑定到此元素的事件。

答案 1 :(得分:1)

如果有人发现这篇文章的话。在较新版本的jQuery中已经改变了这一点。

访问绑定到元素的事件列表的当前代码如下...

使用ID(2种方式):

$._data($('#IDValue')[0]).events
$._data($('#IDValue')[0], "events")

使用课程(2种方式):

$._data($('.classValue')[0], "events")
$._data($('.classValue')[0]).events

答案 2 :(得分:0)

Darin给出的答案是正确的,但在这种情况下,我更喜欢在绑定函数时向元素添加一个类,并在我尝试绑定元素时检查是否添加了类

例如

$('a').each(function(index, elem) {
  if ($(elem).hasClass('added')) {
     return;
  }
  else {
     $(elem).click(function() {
        alert("clicked");
     })
     .addClass("added");
  }
})