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

(O)jquery:e.target和this的区别(如何使事件委托后,被选元素的子元素不被选中)的更多相关文章

  1. jQuery判断一个元素是否为另一个元素的子元素

    判断:当前元素是否是被筛选元素的子元素 jQuery.fn.isChildOf = function(b){ return (this.parents(b).length > 0); }; 判断 ...

  2. jQuery判断一个元素是否为另一个元素的子元素(或者其本身)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head& ...

  3. jquery选择器 之 获取父级元素、同级元素、子元素

    jquery选择器 之 获取父级元素.同级元素.子元素 一.获取父级元素 1. parent([expr]): 获取指定元素的所有父级元素 <div id="par_div" ...

  4. jQuery学习笔记---兄弟元素、子元素和父元素的获取

    我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行 ...

  5. jquery查找父元素、子元素(个人经验总结)

    使用js或者jquery查找父元素.子元素经常遇到.可是用起来总容易混淆,这里统一总结了一下,以后用起来相信会方便好多 这里jquery向上查找父元素 用到的方法:closest() parents( ...

  6. js与jquery获取父元素,删除子元素的不同方法

    var obj=document.getElementById("id");得到的是dom对象,对该对象进行操作的时候使用js方法 var obj=$("#id" ...

  7. jquery选择器 之 获取父级元素、同级元素、子元素 - yes的日志 - 网易博客

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  8. jquery获取元素(父级的兄弟元素的子元素)

    一.获取父级元素 使用jquery获取父级元素: parent() 例如:$(this).parent('ul'); 二.获取同级元素 使用jquery获取同级元素:siblings() 例如:$(t ...

  9. jquery选择器:获取父级元素、同级元素、子元素

    jQuery的出现给广大开发者提供了不少的方便.从要自己一个一个敲代码,到直接调用方法,无疑大大地提高了网站开发的效率.而在jQuery中有一些方法非常的实用.下面就给大家介绍下jquery选择器:获 ...

随机推荐

  1. stringBuffer和stringBulider的区别

    今天去面试了,问了最基础的stringBuffer和stringBulider的区别,我没有回答出来.之前就知道自己的基础很差,没想到这么差. 网上看了一下资料,stringBuffer和string ...

  2. poj1061-青蛙的约会-(贝祖定理+扩展欧几里得定理+同余定理)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions:132162   Accepted: 29199 Descripti ...

  3. workerman 平滑重启

    <?phpuse Workerman\Worker;use Workerman\Lib\Timer; require_once '../../web/Workerman/Autoloader.p ...

  4. sass 的安装 编译 使用

    1.使用node 的command 运行命令: gem install sass2.cmd检查是否安装成功 sass -v 如果成功了 可以看见版本信息Sass 3.5.5 ...3. 创建.scss ...

  5. MVC003之调用BLL层方法(BLL层调用了WebService)

    项目又BLL类库,在类库中引用了webservice.在web层调用BLL的方法时 错误如下: 在 ServiceModel 客户端配置部分中,找不到引用协定“OAService.IntranetSe ...

  6. 虚拟机安装的ubutun全屏

    虚拟机下面安装了ubuntu系统,显示的屏幕只有那么一小块儿,不知道如何才能全屏,那么如何全屏呢?且看下面经验.   方法/步骤     打开虚拟机,并点击要更改成全屏的那个ubuntu系统的电源 我 ...

  7. 第十一章 串 (c2)KMP算法:查询表

  8. 22. Generate Parentheses (backTracking)

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  9. Codeforces Beta Round #18 (Div. 2 Only)

    Codeforces Beta Round #18 (Div. 2 Only) http://codeforces.com/contest/18 A 暴力 #include<bits/stdc+ ...

  10. RockerMQ介绍 及搭建双master模式

    一.RocketMQ介绍 1.1 简介 RocketMQ 是一款分布式.队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机 ...