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

jQuery中是否有方法检测元素是否已经有绑定事件?,jquery,Jquery,jQuery中是否有方法检测元素是否已经有绑定事件 换句话说,我只想在元素以前没有绑定它的情况下绑定事件。。否则我会触发两次 我正在使用jQuery1.2.7 $('#someId').data('events') 应该为您提供绑定到此元素的事件。Darin给出的答案是正确的,但在这种情况下,我更喜欢在绑定函数时向元素添加类,并在尝试绑定到元素时检查是否添加了类 例如 如果有人偶然发现这篇文章。这在较新版本的jQuery中已被更改。 访问绑定到元素的事件列表的当前代码如下 使用ID(2种方式)

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

换句话说,我只想在元素以前没有绑定它的情况下绑定事件。。否则我会触发两次

我正在使用jQuery1.2.7

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

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

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

例如


如果有人偶然发现这篇文章。这在较新版本的jQuery中已被更改。

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

使用ID(2种方式):

使用类(2种方式):


我以前在使用这种方法时遇到过一些麻烦(尽管这是我所知道的唯一一种)。我怀疑事件是否是使用.live和not.bind绑定的。这会变得不稳定。只是提醒一下:)@Darin Dimitrov谢谢,我明白了,我该怎么数呢?我需要一个正确/错误的结果。。我试过增加长度,但没用。请考虑我使用jQuery 1.2。7@lnrbob谢谢你的提醒。我实际上没有live(),因为我使用的是旧的jqueryversion@Patrick,
if($('#someId').data('events')['click']){alert('click is assigned');}else{alert('click is not assigned');}
@Darin-大概您可以设置变量或返回true或false,而不是触发警报?
$('a').each(function(index, elem) {
  if ($(elem).hasClass('added')) {
     return;
  }
  else {
     $(elem).click(function() {
        alert("clicked");
     })
     .addClass("added");
  }
})
$._data($('#IDValue')[0]).events
$._data($('#IDValue')[0], "events")
$._data($('.classValue')[0], "events")
$._data($('.classValue')[0]).events