jquery의 공식 API에는 네임스페이스에 대한 설명이 있습니다. 주소는 http://api.jquery.com/on/ "이벤트 이름 및 네임스페이스"라는 제목 아래에 영어 소개가 있습니다. 소개 좀. 잘 이해하지 못하는 친구들이 있다면 여기서 간단히 소개하겠습니다!
먼저 몇 가지 코드를 살펴보겠습니다.
$(“#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 중국어 웹사이트의 기타 관련 기사를 참조하세요!