检查元素上是否存在事件
这个问题在这里已经有了答案:
$('body').click(function(){ alert('test' )})
var foo = $.data( $('body').get(0), 'events' ).click
// you can query $.data( object, 'events' ) and get an object back, then see what events are attached to it.
$.each( foo, function(i,o) {
alert(i) // guid of the event
alert(o) // the function definition of the event handler
});
您可以通过将对象引用(不是jQuery对象)提供给$ .data来进行检查,并且对于第二个参数提要'events'进行检查,然后返回一个填充了所有事件(如'click')的对象。 您可以遍历该对象并查看事件处理程序的功能。
您可以使用:
$("#foo").unbind('click');
确保所有点击事件都是未绑定的,然后附加您的活动
以下是如何检查元素是否存在任何事件
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(function() {
$("#textDiv").click(function() {
//Event Handling
});
var events = $._data(document.getElementById('textDiv'), "events");
var hasEvents = (events != null);
});
</script>
</head>
<body>
<div id="textDiv">Text</div>
</body>
</html>
链接地址: http://www.djcxy.com/p/49169.html