jQuery : $ (). click (fn) vs. $ (). bind ( 'click', fn);
jQuery를 사용하여 이벤트 핸들러를 연결하는 경우 click 메소드 사용과 차이점이 있습니까?
$().click(fn)
바인드 방법 사용
$().bind('click',fn);
바인드의 선택적 데이터 매개 변수 이외.
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] 매개 변수는 바인드 시간에 한 번만 발생합니다.
바인드의 첫 번째 매개 변수로 사용자 정의 이벤트를 지정할 수도 있습니다.
.click ()이 더 논리적이라는 것을 알지만 그것이 당신이 생각하는 방식이라고 생각합니다.
$('#my_button').click(function() { alert('BOOM!'); });
당신이 얻는 것처럼 간단하게 죽은 것처럼 보입니다.
Chrome이있는 경우 개발자 도구에는 이벤트 리스너 도구가 있습니다. 이벤트를 감시하려는 요소를 선택하십시오.
두 가지 방법을 모두 시도해도 동일한 결과를 얻을 수 있으므로 동일합니다.
내가 선호하는 () .bind 때문에과의 인터페이스의 일관성의 .live () . 코드를보다 읽기 쉽게 만들뿐만 아니라 한 줄의 코드를 변경하여 다른 방법 대신 다른 방법을 사용하는 것이 더 쉽습니다.
참고 URL : https://stackoverflow.com/questions/518762/jquery-clickfn-vs-bindclick-fn
'programing tip' 카테고리의 다른 글
패턴에 따라 R에서 부분 문자열을 추출 (0) | 2020.07.23 |
---|---|
코드 주석에서 #XXX의 의미는 무엇입니까? (0) | 2020.07.23 |
대기중인 performSelector : afterDelay 호출 취소 (0) | 2020.07.23 |
“--allow-file-access-from-files”모드에서 Chrome을 사용하여 HTML을 시작하는 방법은 무엇입니까? (0) | 2020.07.23 |
비동기 액션 대리자 메서드를 어떻게 구현합니까? (0) | 2020.07.23 |