> 웹 프론트엔드 > 프런트엔드 Q&A > Jquery에서 on 메소드의 장점은 무엇입니까?

Jquery에서 on 메소드의 장점은 무엇입니까?

青灯夜游
풀어 주다: 2022-09-09 18:08:17
원래의
1871명이 탐색했습니다.

jquery에서 on 메소드의 장점: 1. on() 메소드는 페이지 요소에 동적으로 추가된 이벤트를 바인딩할 수 있으며 추가된 이벤트 핸들러는 현재 및 미래 요소에 적용 가능합니다. 2. on() 메소드는 다음에 할당될 수 있습니다. 하나 이상의 이벤트 핸들러를 추가하면 효율성이 향상될 수 있습니다.

Jquery에서 on 메소드의 장점은 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, jquery3.6.1 버전, Dell G3 컴퓨터.

on() 메서드는 선택한 요소와 하위 요소에 하나 이상의 이벤트 핸들러를 추가합니다.

jQuery 버전 1.7부터 on() 메서드는 바인딩(), live() 및 위임() 메서드를 새롭게 대체합니다. 이 방법은 API에 많은 편의성을 제공하며 jQuery 코드 기반을 단순화하므로 권장됩니다.

단일 요소에 대해 별도의 등록 이벤트를 작성하는 것은 번거롭습니다

$("p").click(function(){
  $(this).hide();
});
$("p").mouseenter(function(){
  $(this).css("background","blue");
});
로그인 후 복사

따라서 on

$("p").on({
  click:function(){
    $(this).hide();
  },
  mouseenter:function(){
    $(this).css("background","blue");
  }
});
 
//还可以合并
$("div").on( "mouseenter mouseleave", function(){
    $(this).toggleclass( "current");
})
로그인 후 복사

을 통해 여러 이벤트를 한 번에 등록할 수 있습니다. jQuery로 이벤트를 바인딩하는 방법에는 여러 가지가 있습니다. ) 바인딩 방법에는 2가지가 있습니다.

1. on() 메서드는 페이지 요소에 동적으로 추가되는 이벤트를 바인딩할 수 있습니다.

예를 들어 페이지에 동적으로 추가되는 DOM 요소, .on() 메소드는 등록할 필요가 없습니다. 이 이벤트의 요소가 추가되면 바인딩을 반복할 필요가 없습니다. 일부 학생들은 .bind(), .live() 또는 .delegate() 사용에 익숙할 수 있습니다. 소스 코드를 보면 실제로 .on() 메서드를 호출하고 .live()를 호출하는 것을 알 수 있습니다. 메소드는 jQuery1에서 제거되었습니다.

on() 메서드를 사용하여 추가된 이벤트 핸들러는 현재 및 미래 요소(예: 스크립트로 생성된 새 요소)에 적용됩니다.

bind:

function(
 types, data, fn ) {
  return this.on(
 types, null,
 data, fn );
},
로그인 후 복사

live:

function(
 types, data, fn ) {
  jQuery(
this.context
 ).on( types, this.selector,
 data, fn );
  return this;
},
로그인 후 복사

delegate:

function(
 selector, types, data, fn ) {
  return this.on(
 types, selector, data, fn );
}
로그인 후 복사

2 on() 메소드는 한 번에 하나 이상의 이벤트 핸들러를 요소에 추가할 수 있으므로 효율성이 향상됩니다

다양합니다. 기사에서 이벤트 바인딩의 효율성을 높이기 위해 이벤트 버블링 및 프록시를 사용할 때 대부분 구체적인 차이점을 나열하지 않는다고 언급했기 때문에 확인하기 위해 작은 테스트를 수행했습니다.

페이지에 5000개의 li이 추가되었다고 가정하고 Chrome 개발자 도구 프로필을 사용하여 페이지 로딩 시간을 테스트합니다.

  • 일반 바인딩(그렇게 부르자)

$("li").click(function(){
  console.log(this)
});
로그인 후 복사
$(document).on("click","li",function(){
  console.log(this)
})
로그인 후 복사

바인딩 프로세스의 실행 시간

  • 일반 바인딩은 li에 클릭 이벤트를 별도로 등록하는 것과 동일하며, 메모리 사용량은 약 4.2M, 바인딩 시간은 약 72ms입니다.

  • .on() 바인딩은 이벤트 프록시를 사용하며 문서에 클릭 이벤트만 등록합니다. 메모리 사용량은 약 2.2M이고 바인딩 시간은 약 1ms입니다.

【추천 학습: jQuery 동영상 튜토리얼, 웹 프론트엔드 동영상

위 내용은 Jquery에서 on 메소드의 장점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿