때로는 e.StopPropagation ()을 사용할 수 있습니다. e.preventDefault (); 이벤트가 기본 이벤트의 거품 및 실행을 방지합니다. 그러나 사건의 추가는 예방할 수 없습니다.
어떤 상황에서 우리는 사건의 추가를 막아야합니까?
예를 들어:
"체크 아웃"을 클릭하십시오. 이 작업을 수행 할 때 체크 아웃 자체에는 자체 이벤트가 있지만 체크 아웃하기 전에 로그인할지 여부를 결정해야합니다.
우리는 이것을 쓸 수 있습니다 :
JS 코드
코드 사본은 다음과 같습니다.
if (islogin) {// 로그인할지 여부를 판단합니다
Console.log ( "로그인 없음")
}또 다른{
// checkout 관련 코드
}
"내 홈페이지"를 클릭하면 로그인 판결도 있습니다.
로그인 판단 코드
if (islogin) {// 로그인할지 여부를 판단합니다
Console.log ( "로그인 없음")
}또 다른{
// 개인 센터
}
더 많은 로그인 판단이있는 경우. 위의 코드와 같은 더 많은 코드가 있습니까? 나중에 나는 stopimmediatepropagation () 메소드가 이벤트가 추가되는 것을 방지한다는 것을 알았습니다. 위의 질문은 문제가되지 않습니다.
중요 : 로그인이 이벤트가 첫 번째 바운드 이벤트인지 확인하십시오.
데모 코드
코드 사본은 다음과 같습니다.
<! doctype html>
<html>
<head lang = "en">
<meta charset = "utf-8">
<title> 데모 </title>
<script src = "http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"> </script>
</head>
<body>
<a href = "#"> 체크 아웃 </a>
<ul>
<li> 즐겨 찾기에 추가 </li>
<li> 기타 지불 </li>
<li> 자동차 구입을 추가하십시오 </li>
<li> 내 홈 페이지 </li>
</ul>
<cript>
// 먼저 바인드
$ ( ". islogin"). on ( "클릭", function (e) {
if (true) {// 로그인 판단
경고 ( "로그인 없음");
E.StopimmediatePropagation ();
}
거짓을 반환합니다.
});
$ ( ". Bill"). on ( "Click", function () {
ALERT ( "체크 아웃 관련 콘텐츠!");
});
$ ( ". a1"). on ( "click", function () {
경고 ( "A1");
});
$ ( ". a2"). on ( "click", function () {
경고 ( "a2");
});
$ ( ". a3"). on ( "click", function () {
경고 ( "카트에 추가");
});
$ ( ". a4"). on ( "click", function () {
경고 ( "로그인 판단이 있습니다");
});
</스크립트>
</body>
</html>
실제로 JQuery는 이벤트 $ ._ data ($ ( '. islogin'). get (0)), Firebug를 열고 콘솔에 입력하는 방법을 제공합니다.
JS 코드
$ ._ data ($ ( '. islogin'). get (0))
다음을 볼 수 있습니다.
JS 코드
개체 {events = {...}, handle = function ()}
이벤트 배열을 보려면 클릭하여 요소에 어떤 종류의 이벤트가 있는지 볼 수 있습니다.