jQuery를 사용하여 이벤트 핸들러를 연결할 때 click 메소드 사용에 차이가 있습니까?
$().click(fn)
bind 방법 사용과 비교
$().bind('click',fn);
bind의 선택적 데이터 매개 변수 외에.
답변
그만한 가치는 jQuery 소스에서 :
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
"change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
// Handle event binding
jQuery.fn[name] = function(fn){
return fn ? this.bind(name, fn) : this.trigger(name);
};
});
그래서 아니, 차이가 없습니다.
$().click(fn)
전화
$().bind('click',fn)
답변
Matthew의 답변에는 +1이 있지만 한 번에 두 개 이상의 이벤트 처리기를 바인딩 할 수도 있음을 언급해야한다고 생각했습니다. bind
$('#myDiv').bind('mouseover focus', function() {
$(this).addClass('focus')
});
다음과 같이 훨씬 깔끔합니다.
var myFunc = function() {
$(this).addClass('focus');
};
$('#myDiv')
.mouseover(myFunc)
.focus(myFunc)
;
답변
두 번째 양식을 사용하여 사용자 지정 이벤트를 바인딩 할 수 있다는 점에서 한 가지 차이점이 있습니다. 그렇지 않으면 동의어로 보입니다. 참조 : jQuery 이벤트 문서
답변
바인드시 한 번만 발생하는 바인드의 [data] 파라미터가 있습니다.
사용자 지정 이벤트를 bind의 첫 번째 매개 변수로 지정할 수도 있습니다.
답변
.click ()이 훨씬 더 논리적이라는 것을 알지만 생각하는 방식이라고 생각합니다.
$('#my_button').click(function() { alert('BOOM!'); });
당신이 얻는 것만 큼 간단하게 보입니다.
답변
Google 크롬이있는 경우 개발자 도구에는 이벤트 리스너 도구가 있으며 이벤트를 감시 할 요소를 선택합니다.
두 가지 방법을 모두 시도하면 동일한 결과가 나오므로 동일합니다.
답변
내가 선호하는 () .bind 때문에과의 인터페이스의 일관성의 .live () . 코드를 더 쉽게 읽을 수있을뿐만 아니라 다른 메서드 대신 한 메서드를 사용하도록 코드 줄을 쉽게 변경할 수 있습니다.