2012-04-02 11 views
5

jQuery 1.7에서 알 수 있듯이 전체 이벤트 시스템이 처음부터 다시 작성되었습니다. 코드베이스는 훨씬 빠르며 새로운 .on() 메소드를 사용하면 이벤트 핸들러를 묶는 데 많은 통일성이 있습니다.jquery 내부 데이터에 액세스하는 방법?

하나는 ... 이벤트 데이터 및 이벤트를, 지정된 요소에 등록 된 것을 investiate 내부하지만 최근이 내부 정보는 다음과 같은 시나리오를 기반으로 숨겨진 된 액세스 할 수 있도록 사용

는 것을 보인다 "개인"데이터는 항상 .data (jQuery.expando)에 저장됩니다. - 객체 삭제시 캐시를 삭제해야하는 "객체"의 경우 이는 의미가 있습니다. 그들은 개체가 $ .fn.data() "

에 의해 반환 된 오염되지 않도록 그러나 노드의 영역에서

, 나는 우리가 별도의 (개인) 캐시에 이러한"개인 "회원을 저장해야한다고 생각

내부 데이터를 숨기기위한 위의 변경 사항에 동의하지만 디버깅 및 유닛 테스트에 유용 할 수 있음을 알았습니다.

jQuery 1.7에서 내부 jquery 이벤트 객체를 가져 오는 새로운 방법은 무엇입니까? ?

답변

3

jQuery 1.7에서 이벤트는 내부를 통해 액세스 할 수있는 대체 위치에 저장됩니다방법 (이 방법은 소스 코드에 내부 용으로 만 으로 기록되어 있으므로 사용자 자신의 위험 부담으로 사용하고 이후 버전의 라이브러리에서 변경되거나 사라질 수 있도록 준비해야 함).

요소에 등록 된 이벤트를 얻으려면 해당 요소에서 $._data()을 호출하고 반환 된 개체의 events 속성을 검사 할 수 있습니다. 예 :

$("#yourElement").click(function() { 
    // ... 
}); 

console.log($._data($("#yourElement")[0]).events); 
관련 문제