<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
li{
border: 1px solid #ccc;
}
div{
border: 1px solid green;
}
</style>
</head>
<body>
<ul name='grandfather'>
1
<li name='father'>
1-1
<div name='son'>
1-1-1
<div>1-1-1-1</div>
<div>1-1-1-2</div> 
</div>
<div name='son'>
1-1-2
<div>1-1-2-1</div>
<div>1-1-2-2</div> 
</div>
<div name='son'>
1-1-3
<div> 1-1-3-1</div>
<div> 1-1-3-2</div> 
</div>
</li>
<li>
1-2
<div>1-2-1</div>
<div>1-2-2</div>
</li>
<li>
1-3
<div> 1-3-1</div>
<div> 1-3-2</div>
</li>
</ul>
<script src="js/jquery-1.11.3.js"></script>
<script>
$('ul').on('click','li',function(event){
//event.stopPropagation();
console.log('this是'+$(this).attr('name'))
console.log('$this的儿子的name是'+$(this).children().attr('name'))
$(this).children().css('color','red');
});
</script>
</body>
</html>

上面例子说明:

·e.target是点击的目标元素;

·this是指向事件所绑定的元素(这里是li,click后面那个);

有人说,this也是指向点击的目标元素,只是因为冒泡而最终指向事件所绑定的元素。但当上述代码中加入event.stopPropagation()后,冒泡被阻止,this与e.target效果并不一样,

所以this并不是指向点击的目标元素,而是直接指向事件所绑定的元素。

下面例子,通过有无阻止冒泡加强说明:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>e.target</title>
<script src="js/jquery-1.11.3.js"></script>
</head>
<body>
<div id="temp"></div>
<ul class="JQ-content-box" style="padding:20px; background:#FFFFFF" name="祖先1">
祖先1
<li name="祖先2">
祖先2
<ul name="祖先3">
祖先3
<li name="这是公告标题1">这是公告标题1</li>
<li name="这是公告标题2">这是公告标题2</li>
<li name="这是公告标题3">这是公告标题3</li>
<li name="这是公告标题4">这是公告标题4</li>
</ul>
</li>
</ul>
<script>
$(function(){
$("ul").on("click",function(e){
//e.stopPropagation();
console.log('e.target为:'+$(e.target).attr('name'));
console.log('this为:'+$(this).attr('name'));
$("#temp").html("clicked: " + e.target.nodeName);
$(e.target).css("color","#FF3300");
})
});
</script>
</body>
</html>

转载请注明出处:http://www.cnblogs.com/jacksplwxy/p/6652558.html

最新文章

  1. h5的离线缓存机制
  2. Sending e-mail
  3. 标准库函数atoi的实现
  4. 微信支付调用JSAPI缺少参数:timeStamp
  5. Windows 和 Linux 的IPC API对应表
  6. 文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: FormMain --- 未能加载基类“WinForm.Win.FormsBase.FormMainBase”。请确保已引用该程序集并已生成所有项目
  7. Java中介者设计模式
  8. iPhone5C三大看点:性能不输iPhone5 或售3399元
  9. PHP单例模式--典型的三私一公
  10. jpush 延迟推送的栗子
  11. [Swift]LeetCode282. 给表达式添加运算符 | Expression Add Operators
  12. Python问题:UnboundLocalError: local variable &#39;xxx&#39; referenced before assignment
  13. Alpha(8/10)
  14. @Transactional noRollbackFor
  15. macOS下Hive 2.x的安装与配置
  16. (转)Python中集合(set)的基本操作以及一些常见的用法
  17. 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)
  18. C语言实现线性表
  19. Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境
  20. 单元测试遇到的Mock重载方法问题

热门文章

  1. 吴裕雄 python oracle操作数据库(4)
  2. 吴裕雄 15-MySQL LIKE 子句
  3. 设置HTML编码为UTF-8
  4. mysql 和 Oracle 数据类型对照
  5. Ubuntu下面的docker开启ssh服务
  6. linux基本之一
  7. 苹果笔记本 如何配置成php开发系统
  8. ORA-01578 ORACLE data block corrupted (file # 29, block # 2889087)
  9. oracle_效率优化
  10. 第二章&#160;向量(b)可扩充向量