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
;
|