检查元素上是否存在事件

这个问题在这里已经有了答案:

  • jQuery查找事件处理程序注册一个对象13个答案

  • $('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

    上一篇: Check if event exists on element

    下一篇: Pass mouse events through absolutely