>웹 프론트엔드 >JS 튜토리얼 >jquery의 이벤트 이름과 네임스페이스에 대해 간단히 이야기해 보겠습니다.

jquery의 이벤트 이름과 네임스페이스에 대해 간단히 이야기해 보겠습니다.

一个新手
一个新手원래의
2017-09-08 13:46:051838검색

머리말

jquery의 공식 API에는 네임스페이스에 대한 설명이 있습니다. 주소는 http://api.jquery.com/on/ "이벤트 이름 및 네임스페이스"라는 제목 아래에 영어 소개가 있습니다. 소개 좀. 잘 이해하지 못하는 친구들이 있다면 여기서 간단히 소개하겠습니다!

jQuery 이벤트 네임스페이스

먼저 몇 가지 코드를 살펴보겠습니다.

$(“#haorooms”).on("click.a",function(){});$(“#haorooms”).on("click.a.bb",function(){});$(“#haorooms”).on("dbclick.a",function(){});$(“#haorooms”).on("mouseover.a",function(){});$(“#haorooms”).on("mouseout.a",function(){});

물론 이벤트 바인딩을 위해 바인딩을 사용할 수도 있습니다. 위의 코드를 보면 이벤트 뒤에 마침표와 함께 이름을 추가할 수 있는데, 이는 이벤트 네임스페이스입니다. 소위 이벤트 네임스페이스는 "click.a"와 같이 이벤트를 참조하기 위해 이벤트 유형 뒤에 점 구문으로 별칭을 추가하는 것입니다. 여기서 "a"는 클릭의 현재 이벤트 유형의 별칭입니다. 이벤트 네임스페이스.

다음 네임스페이스를 삭제한다고 가정합니다:

$(“#haorooms”).on("click.a.bb",function(){});

사용할 수 있는 것:

$(“#haorooms”).off("click.a.bb");//直接删除bb命名空间 【推荐】$(“#haorooms”).off(".bb"); //直接删除bb命名空间 【推荐】$(“#haorooms”).off(".a"); //删除.a命名空间下面所有的子空间【包括.a.bb   .a.cc等等,.a是.bb的父级,因此.a下面的都会删掉】$(“#haorooms”).off("click");//直接解绑click,下面的命名空间都会删除。

주의해야 할 점:

다음 코드를 작성한다고 가정합니다:

$(“#haorooms”).on("click",function(){});$(“#haorooms”).on("click.a",function(){});$(“#haorooms”).on("click.a.bb",function(){});

그런 다음 다음을 사용해야 합니다. click을 트리거하는 이벤트, 즉 첫 번째 이벤트가 click.a와 click.a.bb를 모두 트리거하지 않습니까? 그렇다면 이 문제를 해결하려면 클릭만 트리거하고 싶고 클릭은 트리거하지 않아야 합니다. a 및 다음 네임스페이스는 무엇입니까?

상관없어요! 해결 방법은 다음과 같습니다.

이벤트 유형에 느낌표가 붙어 있으면 네임스페이스를 포함하지 않는 특정 이벤트 유형이 발생한다는 의미입니다.

클릭만 트리거하려면 다음과 같이 작성할 수 있습니다.

$(“#haorooms”).trigger("click!")

bb만 트리거하려면 다음과 같이 작성할 수 있습니다.

$(“#haorooms”).trigger("click.a.bb");

네임스페이스를 사용하면 동일한 이벤트를 관리하기가 더 쉽습니다! ! !

맞춤 이벤트

여기서는 설명하지 않겠습니다! 모든 사용자 정의 이벤트는 jQuery 메서드를 통해 트리거될 수 있습니다. 예를 들어 다음 예제에서는 Delay 이벤트 유형을 사용자 정의하고 이를 입력 요소 개체에 바인딩한 다음 버튼 클릭 이벤트에서 사용자 정의 이벤트를 트리거합니다.

$("input").bind("delay",function(event){
    setTimeout(function(){
          alert(event.type);
    },1000);});$("input").click(function(){
      $("input").trigger("delay"); //触发自定义事件});

맞춤 이벤트는 진정한 의미의 이벤트가 아닙니다. 맞춤 이벤트를 실행하는 것은 맞춤 함수를 호출하는 것과 같습니다.

위의 소개를 통해 jquery의 이벤트 이름과 네임스페이스에 대해 더 깊이 이해하셨는지 궁금합니다! 귀하의 메시지와 교환을 기대합니다!


위 내용은 jquery의 이벤트 이름과 네임스페이스에 대해 간단히 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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