2011-08-01 8 views

답변

2

모든 이벤트는 프로그래밍 방식으로 발생시킬 수 있으므로 콜백이없는 버전 만 사용하십시오.

예 : 두 번째 질문에 대해

$('#button').click(function() { alert('event hanlder'); }); 

$('#button').click(); // generate the event 

는 기본 및 jQuery를 이벤트 핸들러 사이에 차이점이 없습니다.

$('#button').click(function() { alert(this); }); // here 'this' == document.getElementById('button'); 

경고 :하지만 깔끔


한 가지 jQuery를 (이것은 기본 이벤트 처리기에서 발생하지 않습니다) 콜백 내부 이벤트를받은 요소에 this를 결합이다 : this에 의해 참조되는 요소는 "jQuery가 증가"되지 않습니다. jQuery를 사용하여 트래버스하거나 수정하려는 경우 다음과 같이해야합니다. var $this = $(this);

0

이벤트를 프로그래밍 방식으로 트리거 할 수 있습니다. 그러나 대부분의 이벤트는 프로그래밍 방식 트리거를 사용하는 자연스러운 이벤트로 시뮬레이트 될 수 없습니다.

//

는 분명한 이유, 당신은 ready 이벤트를 트리거 할 수없는, 버튼을 먼저

$("buttonSelector").trigger("click"); 
0

에 클릭 이벤트를 트리거합니다.

즉, trigger()에 의해 발생한 이벤트는 사용자가 트리거 한 것과 같은 방식으로 동작합니다. 특히, 이벤트 핸들러는 동일한 순서로 호출됩니다.

내가 아는 유일한 차이점은 트리거 된 이벤트가 이전 버전의 jQuery (버전 1.3에서 수정 된 문제)에서 DOM 트리를 버블 링하지 않았다는 것입니다.

1

jQuery에서 triggertriggerHandler의 차이점을 알아야합니다.

트리거

trigger 시도는 가장 잘 할 수있는 등 자연 이벤트를 복제합니다. 트리거되는 이벤트에 대한 이벤트 핸들러가 실행되지만 기본 브라우저 조치가 항상 정확하게 복제되지는 않습니다. 예를 들어 $('a#link).trigger('click');은 링크 click 이벤트 핸들러에 바인딩 된 javascript 함수를 실행하지만 정상 클릭과 마찬가지로 브라우저를 앵커 href으로 리디렉션하지 않습니다. 예 : http://jsfiddle.net/AxFkD/

trigger의 모든 짧은 형식은 정확히 trigger IE와 비슷하게 동작합니다. click(), mouseup(), keydown()

triggerHandler

triggerHandler는 (EX를 버블 링 방지 할 수 있습니다.http://jsfiddle.net/LmqsS/), 기본 브라우저 동작을 피하고 이벤트 콜백 만 실행하고 연쇄를위한 jquery 객체 대신 이벤트 처리기의 반환 값을 반환합니다. http://jsfiddle.net/jvnyS/

:

또한 trigger는 선택자와 일치하는 모든 요소에 영향을 미친다는 것을 알고 있어야한다

하지만 triggerHandler은 첫 번째 EX에 영향을 미친다

관련 문제