>  기사  >  웹 프론트엔드  >  jQuery_jquery에서 Delegate와 on의 사용법과 차이점에 대한 자세한 분석

jQuery_jquery에서 Delegate와 on의 사용법과 차이점에 대한 자세한 분석

WBOY
WBOY원래의
2016-05-16 17:02:30871검색

jQuery 1.7에서는 .delegate()가 .on()으로 대체되었습니다. 이전 버전과 마찬가지로 여전히 가장 효율적인 이벤트 위임 수단을 사용합니다.
이벤트 바인딩과 위임에서 대리자()와 on은 일반적으로 동일합니다.

.delegate()는 지정된 요소(선택한 요소의 하위 요소)에 하나 이상의 이벤트 핸들러를 추가하고 이러한 이벤트가 발생할 때 실행할 함수를 지정합니다.

코드 복사 코드는 다음과 같습니다.

// jQuery 1.4.3
$( 요소 ).delegate( 선택기, 이벤트, 데이터, 처리기 );
// jQuery 1.7
$( 요소 ).on( 이벤트, [선택기], 데이터, 처리기 );

예: .delegate() 코드:
코드 복사 코드는 다음과 같습니다. 다음과 같습니다:

$("table").delegate("td","click",function(){
Alert("hello");
});

.on() 코드:
코드 복사 코드는 다음과 같습니다. 다음:

$("table").on("click", "td", function() {
     Alert("hi");
});

PS: 둘 차이점은 선택기와 이벤트의 순서가 다르다는 것입니다.
대리자와 on 메소드에 의해 선택된 요소의 하위 요소는 "적법한" 하위 요소여야 합니다. 예를 들어
코드 복사 코드는 다음과 같습니다.

$("table") .delegate("버튼 ","클릭",function(){...});
$("table").on("클릭", "p", function(){...}) ;

은 작동하지 않습니다. 일반적인 상황에서는 테이블 하위 요소가 tr, td...

on(events,[selector],[data],fn), 매개변수 [selector]는 선택 사항입니다.
이벤트를 트리거하는 필터 선택기 요소의 하위 항목에 대한 선택기 문자열입니다.
예:

코드 복사 코드는 다음과 같습니다.

$(" table").on("click", ".td1", function() {
Alert("hi");
});

클래스로 테이블 하위 요소 필터링 td1

대리인 선택은 필수입니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.