在jQuery中是否有办法检测元素是否已经有绑定事件?
换句话说,我想只在元素之前没有绑定它时绑定一个事件..否则我会触发它两次。
我正在使用jQuery 1.2.7
答案 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");
}
})