요소에 이벤트가 있는지 확인

jQuery에서 이벤트가 존재하는지 확인할 수 있는 방법이 있나요? 사용자 정의 네임스페이스 이벤트를 사용하는 플러그인에서 작업 중이며 이벤트가 요소에 바인딩되었는지 여부를 확인할 수 있기를 원합니다.

질문에 대한 의견 (2)
해결책
$('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 객체는 아님)를 전달하고 두 번째 인수에 'events'를 전달하면 'click'과 같은 모든 이벤트로 채워진 객체를 반환하여 검사할 수 있습니다. 해당 객체를 반복하여 이벤트 핸들러가 수행하는 작업을 확인할 수 있습니다.

해설 (9)

사용할 수 있습니다.

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

모든 클릭 후 해당 이벤트는 이벤트 부착합니다 운빈더드 확인하십시오.

해설 (5)
  • 이벤트 협력하였습니다 element:* 확인할 수 있습니다
var events = $._data(element, "events")

&gt. 참고로 이 항목만 작동합니까 $ (document) 를 사용하는 경우, 직접 이벤트 핸들러도 오언 (&quot, event-name&quot jq-selector&quot ";; / / 논리 함수 () {}), 이 질문에 게테벤츠 함수은 보려는 아래쪽에 있는 것입니다.

  • 더 example:*
 var events = $._data(document.getElementById("myElemId"), "events")

또는

 var events = $._data($("#myElemId")[0], "events")
  • 전체 Example:*


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


        <div id="textDiv">Text</div>

  • 보다 완벽한 확인 방법을 포함하는 $ (document), 동적 리스너에 설치된 오언 *
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])
해설 (3)

제이쿼리 이벤트 필터** 사용

다음과 같이 사용할 수 있습니다.

$("a:Event(click)")
해설 (3)

저는 hasEventListener라는 플러그인을 만들었는데, 정확히 이 기능을 수행합니다.

도움이 되길 바랍니다.

해설 (1)

아래 코드는 모든 주어진 선택기를 클릭 이벤트 정보를 제공합니다.

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

반복할 수 있습니다 사용하여 해당 확인란 디스테이징하는 다음과 같은 검증을 위해 각 충족하거나 예:

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

누군가 보호하리요 줄 알았다. )

해설 (1)

이 작품은 가져다줄래요 유형 및 이벤트 디스크입니다. diskid 수행됨 객체에는 양상을 보이고 있다.

    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
    });
해설 (0)

내가 이렇게 됐지

typeof ($('#mySelector').data('events').click) == "object"
해설 (0)