事件冒泡不是向上传递么?为什么给div添加事件,a会截停? 这个怎么又像捕获了那? 看完这个案例我又晕了!
<div class="left"> <p class="aaron"> <a>目标节点</a> //点击在这个元素上 </p> </div>
<div class="left"> <p class="aaron"> <a>目标节点</a> //点击在这个元素上 </p> </div>
2016-10-12
我也是初学者,下面是我的理解
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style>
.left div,
.right div {
width: 500px;
height: 50px;
padding: 5px;
margin: 5px;
float: left;
border: 1px solid #ccc;
}
.left div {
background: #bbffaa;
}
.right div {
background: yellow;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>on事件委托</h2>
<div class="left">
<div class="aaron">
<a>点击这里</a>
<p>试下点击这里</p>
</div>
</div>
<script type="text/javascript">
//给body绑定一个click事件
//没有直接a元素绑定点击事件
//通过委托机制,点击a元素的时候,事件触发
//$('body').on('click', function(e) )
$('body').on('click','a', function(e) {
alert(e.target.textContent)
})
</script>
</body>
</html>你可以试着运行上面的代码,观察$('body').on('click','a', function(e) )和$('body').on('click', function(e) )的运行结果的不同。你会发现$('body').on('click','a', function(e) )情况下,只有点击<a>才会触发click事件,而在$('body').on('click', function(e) )情况下点击页面内的任何元素都可以促发click事件。认真理解老师给$('body').on('click','a', function(e) )的三句注释:
//给body绑定一个click事件
//没有直接a元素绑定点击事件
//通过委托机制,点击a元素的时候,事件触发
我们给body绑定的click事件,为什么只有在点击<a>元素的时候才会触发click事件呢?因为我们把click事件委托了<a>.
能理解吗
举报