js阻止冒泡
在阻止冒泡的過程中,W3C和IE采用的不同的方法,那么我們必須做以下兼容。
復(fù)制代碼 代碼如下:
function stopPro(evt){
var e = evt || window.event;
//returnValue如果設(shè)置了該屬性,它的值比事件句柄的返回值優(yōu)先級高。把這個(gè)屬性設(shè)置為 fasle,
//可以取消發(fā)生事件的源元素的默認(rèn)動作。
//window.event?e.returnValue = false:e.preventDefault();
window.event?e.cancelBubble=true:e.stopPropagation();
}
復(fù)制代碼 代碼如下:
function cancelBubble(e) {
var evt = e ? e : window.event;
if (evt.stopPropagation) {
//W3C
evt.stopPropagation();
}
else {
//IE
evt.cancelBubble = true;
}
復(fù)制代碼 代碼如下:
$("#div1").mousedown(function(event){
event.stopPropagation();
});
復(fù)制代碼 代碼如下:
$("#div1").mousedown(function(event){
return false;
});
復(fù)制代碼 代碼如下:
$("a").click(function(event){
event.preventDefault(); //阻止默認(rèn)動作即該鏈接不會跳轉(zhuǎn)。
alert(4);//但是這個(gè)還會彈出
event.stopPropagation();//阻止冒泡事件,上級的單擊事件不會被調(diào)用
return false;//不僅阻止了事件往上冒泡,而且阻止了事件本身
});
復(fù)制代碼 代碼如下:
<script src="js/jquery-1.4.3.js"></script>
<script type="text/javascript">
$(function(){
$("#aa").click(function(event){
alert("aa");
event.preventDefault();
event.stopPropagation();
alert(3);
});
$("#ee").click(function(){
alert("ee");
});
$("a").click(function(event){
event.preventDefault();
alert(4);
event.stopPropagation();
return false;
});
});
</script>
</head>
<body>
<div>
aaaaaaa
<input type="button" value="test" />
<a >baidu.com</a>
</div>
</body>
復(fù)制代碼 代碼如下:
function tt(){
alert("div");
}
function ttt(){
var e = arguments.callee.caller.arguments[0] || window.event;
window.event?e.returnValue = false:e.preventDefault();
alert(3);
window.event?e.cancelBubble:e.stopPropagation();
alert(4);
}
</script>
</head>
<body>
<div onclick = "tt();">
ccccc
<a >baidu.com</a>
</div>
新聞熱點(diǎn)
疑難解答
圖片精選