jquery取消事件冒泡的三種方法(推薦)


1、通過返回false來取消默認的行為並阻止事件起泡。

jQuery 代碼:

?
1
2
3
4
5
6
7
8
9
10
11
$( "form" ).bind(
 
   "submit" ,
 
   function () {
 
     return false ;
 
   }
 
);

2、通過使用 preventDefault() 方法只取消默認的行為。

jQuery 代碼:

?
1
2
3
4
5
6
7
8
9
$( "form" ).bind(
 
   "submit" ,
 
   function (event){
    event.preventDefault();
  }
 
);

3、通過使用 stopPropagation() 方法只阻止一個事件起泡。

jQuery 代碼:

?
1
2
3
4
5
6
7
8
9
$( "form" ).bind(
 
   "submit" ,
 
   function (event){
    event.stopPropagation();
  }
 
);

(4)總結

1. 一個事件起泡對應觸發的是上層的同一事件

特殊:如果two設置成雙擊事件,那么在你單擊two的時候就會起泡觸發one單擊的事件

(雙擊包含單擊)。

2. 如果在click事件中,在你要處理的事件之前加上e.preventDefault();

那么就取消了行為(通俗理解:相當於做了個return操作),不執行之后的語句了。

3. e.stopPropagation()只要在click事件中,就不會觸發上層click事件。

?
1
2
3
4
5
6
7
8
9
10
11
//如果提供了事件對象,則這是一個非IE瀏覽器
 
if ( e && e.stopPropagation )
   // 因此它支持W3C的stopPropagation()方法
  
e.stopPropagation();
else
   //否則,我們需要使用IE的方式來取消事件冒泡
  
window.event.cancelBubble = true ;
return false ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM