2013-08-10 4 views
2

jQuery 1.9+에서는 "on"이 있기 때문에 라이브 처리기를 더 이상 사용하지 않습니다. on을 사용하고 있고 "button"을 클릭하고 싶다면 클릭하면 어떻게됩니까? 클릭 핸들러에 현재 요소를 바인딩하는 방법

는 Currenly에만 이벤트 (I하지 함수에 필요한 요소) 이벤트를 생성 요소 처리기 내부

답변

3

elevent object 개체입니다.

el.target은 클릭을 트리거 한 DOM element입니다.

this은 해당 DOM 요소에 대한 사전 구성된 참조입니다.

$(this)은 해당 참조를 jQuery 참조로 변환합니다.

그래서 당신은 좋은 설명이

var like = function(el) { 
    console.log(el); // outputs event object object 
    console.log(el.target); // outputs DOM element 
    console.log(this); // should output the same as el.target 
    console.log($(this)); // outputs jQuery object of that DOM element 

    // the code can be 
    $(this).parent().hide(); 
    // or 
    $(el.target).parent().hide(); 
} 
+0

덕분에 같이 갈 수 있습니다. –

+0

'el은 jQuery.Event 객체입니다. ' 그것은 ** 이벤트 객체 **이지 ** Jquery.Event 객체가 아닙니다 ** –

+0

@ Sushanth - jQuery.Event 객체 일 것입니다. 콜백이 jQuery 이벤트 핸들러와 함께 사용되는 한. jQuery는 jQuery.Event 객체를 만들고이를 첫 번째 인수로 전달한 다음 DOM 요소를 이벤트 호출의 컨텍스트로 설정합니다. – cgTag

1

사용 this 컨텍스트를 결합한다.

var like = function() { 
    $(this).parent().hide(); 
}; 

$("#like").on('click', like); 
관련 문제