복붙노트

[JQUERY] 이벤트가 요소에 있는지 확인 [중복]

JQUERY

이벤트가 요소에 있는지 확인 [중복]

해결법


  1. 1.

    $('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
    });
    

    당신은 $ .DATA에 대한 객체 참조 (안 jQuery 오브젝트하지만)를 공급함으로써 검사 할 수 있고, 두 번째 인수 피드 '이벤트'와 그것을 위해 같은 '클릭'과 같은 모든 이벤트로 채워 객체를 반환합니다. 당신은 그 개체를 통해 루프를 할 수있는 이벤트 핸들러가 무엇을 참조하십시오.


  2. 2.당신은 사용할 수 있습니다 :

    당신은 사용할 수 있습니다 :

    $("#foo").unbind('click');
    

    반드시 모든 클릭 이벤트가 unbinded입니다 수 있도록, 다음 이벤트를 첨부


  3. 3.요소의 이벤트를 확인하려면 :

    요소의 이벤트를 확인하려면 :

    var events = $._data(element, "events")
    

    예를 들면 :

     var events = $._data(document.getElementById("myElemId"), "events")
    

    또는

     var events = $._data($("#myElemId")[0], "events")
    

    전체 예 :

    <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>
    

    $ (문서) CSTE 연구진과 함께 설치된 동적 수신기를 포함하고 확인하는보다 완전한 방식으로,

    function getEvents(element) {
        var elemEvents = $._data(element, "events");
        var allDocEvnts = $._data(document, "events");
        for(var evntType in allDocEvnts) {
            if(allDocEvnts.hasOwnProperty(evntType)) {
                var evts = allDocEvnts[evntType];
                for(var i = 0; i < evts.length; i++) {
                    if($(element).is(evts[i].selector)) {
                        if(elemEvents == null) {
                            elemEvents = {};
                        }
                        if(!elemEvents.hasOwnProperty(evntType)) {
                            elemEvents[evntType] = [];
                        }
                        elemEvents[evntType].push(evts[i]);
                    }
                }
            }
        }
        return elemEvents;
    }
    

    사용 예제 :

    getEvents($('#myElemId')[0])
    

  4. 4.JQuery와 이벤트 필터를 사용

    JQuery와 이벤트 필터를 사용

    당신은 다음과 같이 사용할 수 있습니다

    $("a:Event(click)")
    

  5. 5.나는 정확히 않는 hasEventListener라는 플러그인을 썼다.

    나는 정확히 않는 hasEventListener라는 플러그인을 썼다.

    도움이 되었기를 바랍니다.


  6. 6.코드 아래에 주어진 선택의 모든 클릭 이벤트를 제공합니다 :

    코드 아래에 주어진 선택의 모든 클릭 이벤트를 제공합니다 :

    jQuery(selector).data('events').click
    

    각 또는 전직을위한을 사용하여 반복 할 수 있습니다. 등의 확인을 위해 길이를 확인 :

    jQuery(selector).data('events').click.length
    

    누군가 도움이 될 생각. :)


  7. 7.나를 위해이 작품이 발생한 개체 및 이벤트의 유형을 보이고있다.

    나를 위해이 작품이 발생한 개체 및 이벤트의 유형을 보이고있다.

        var foo = $._data( $('body').get(0), 'events' );
        $.each( foo, function(i,o) {
        console.log(i); // guide of the event
        console.log(o); // the function definition of the event handler
        });
    

  8. 8.나는이 일을 결국

    나는이 일을 결국

    typeof ($('#mySelector').data('events').click) == "object"
    
  9. from https://stackoverflow.com/questions/1515069/check-if-event-exists-on-element by cc-by-sa and MIT license