2012-01-30 3 views
0

현재 다음 코드를 사용하여 Firefox 추가 기능에서 이벤트를 트리거합니다. jQuery로 이벤트 생성/트리거

var hiddenArea = document.getElementById("section_help"); 
    if (hiddenArea) { 
     var evt = document.createEvent("MouseEvents"); 
     evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     hiddenArea.dispatchEvent(evt); 
    } 

나는

$("#section_help").trigger("click"); 

를 사용하여 jQuery로 동일을 달성하기 위해 시도했지만 작동하지 않습니다. jQuery는 원래 코드에 포함 된 이벤트를 트리거하지 않습니다.

내 잘못은 어디입니까?

답변

1

jQuery documentation는 다음과 같은 언급 :) .trigger 비록

(A 합성 이벤트 객체로 전체 이벤트 활성화, 시뮬레이션, 그것은 완벽하게 자연적으로 발생하는 이벤트를 복제하지 않습니다.

소스 코드를 살펴 봐야한다는 것을 의미하는 것이 명확하지 않습니다. 분명히, jQuery는 실제로 네이티브 이벤트 객체를 생성하지 않습니다. 단지 자체 이벤트 핸들러 (jQuery를 통해 추가 된 이벤트 핸들러)와 onfoo 속성에서 찾을 수있는 이벤트 핸들러를 트리거합니다. addEventListener()을 통해 추가 된 이벤트 핸들러는 트리거되지 않습니다. 이벤트와 관련된 네이티브 액션은 트리거되지 않습니다 (jQuery는 몇 가지 특별한 경우를 처리하는 것 같습니다).

요약하면 이전 이벤트 작성 방법을 잘 이해할 수 있습니다. 좀 더 자세한 내용 일 수도 있지만 예상대로 작동합니다.

관련 문제