我需要检查一些事件是否已绑定在一个元素上。
例如
$(".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。
答案 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"));
});