programing tip

jQuery : $ (). click (fn) vs. $ (). bind ( 'click', fn);

itbloger 2020. 7. 23. 19:05
반응형

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

반응형