假設我們有框。在這個盒子裏是另一個盒子(box2)。我想在框中點擊鼠標時激活一個事件,但如果在box2上單擊它,我不想激活它。我怎樣才能做到這一點?我只想將事件綁定到box但排除box2。我做了一個測試用例:如何將事件綁定到元素的外部?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="jquery-1.6.3.min.js"></script>
<style>
.box {width: 300px;height:150px;border:1px solid black;}
.box2 {width: 10px;height:8px;border:1px solid red;z-index:2;}
</style>
<script>
$(function() {
$('.box').click(function() {
alert('clicked');
});
});
</script>
</head>
<body>
<div class="box"><div class="box2"></div></div>
</body>
</html>
在這個測試案例中,我想在box2之外單擊鼠標時發出警報。不幸的是,無論光標處於什麼位置,它都會激活,所有它關心的是它是否在框內。那麼,如果在box2中單擊它,如何激活它,但是如果在box2(紅色框)上單擊它,卻不會激活它?
「我只是想綁定事件到存儲箱」 ......事件冒泡的DOM,所以你將不得不綁定的事件BOX2爲好。只需在該事件處理程序中使用事件對象的stopPropagation方法即可。 –