jQuery中event.target和this的区别详解


Posted in jQuery onAugust 13, 2020

this和event.target的区别:

1.js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远指向触发事件的DOM元素本身;

2.this和event.target都是dom对象,使用jQuey中的方法可以将他们转换为jquery对象:$(this)和$(event.target).

比如,一个很简单的例子.

$(event.target)指向触发事件的元素. 当点击蓝色小方框时, 蓝色小方框会变成橙色, 但其外围的大方框不会变色, 即没有触发事件的冒泡行为.

点击前: jQuery中event.target和this的区别详解 点击后: jQuery中event.target和this的区别详解

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
  *{
  margin: 0;
  padding: 0;
  }
  #big {
  width: 200px;
  height: 200px;
  background-color: gray;
  }
  #small {
  width: 100px;
  height: 100px;
  background-color: blue;
  margin: 0 auto;
  }
 </style>
 </head>
 <body>
 <div id="big">
 <div id="small"></div>
 </div>
 <script src="js/jquery-2.2.4.min.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
 $("div, input").click(function (event) {
  $(event.target).css("background-color", "orange");
 });
 </script>
 </body>
</html>

$(this)指向触发事件的元素. 当点击蓝色小方框时,蓝色小方框会变橙色, 同时其外围的灰色大方框也会变成橙色, 也就是说当用this获取触发事件的元素会引起事件的冒泡.

点击前: jQuery中event.target和this的区别详解 点击后: jQuery中event.target和this的区别详解

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
  *{
  margin: 0;
  padding: 0;
  }
  #big {
  width: 200px;
  height: 200px;
  background-color: gray;
  }
  #small {
  width: 100px;
  height: 100px;
  background-color: blue;
  margin: 0 auto;
  }
 </style>
 </head>
 <body>
 <div id="big">
 <div id="small"></div>
 </div>
 <script src="js/jquery-2.2.4.min.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
 $("div, input").click(function () {
  $(this).css("background-color", "orange");
 })
 </script>
 </body>
</html>

例二

onclick = changeImg(this)       vs     onclick = changeImg(event)

<img src='usa.gif' onclick="changeImg(event)" />
<script>
var myImages = [


'usa.gif','canada.gif','jamaica.gif','mexico.gif'

];

function changeImg(e) {


var el = e.target;


var newImgNumber = Math.round(Math.round()*3);


while(el.src.indexOf(myImages[newImgNumber]) != -1){



el.src =myImages[newImgNumber];


}

}
</script>

this是Javascript语言的一个关键字。

this代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。

this和event.target的区别:

js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化(在事件触发时,只传递当前event对象的引用),它永远是直接接受事件的目标DOM元素;

另外,this和event.target都是dom对象,如果要使用jquey中的方法可以将他们转换为jquery对象:$(this)和$(event.target);

到此这篇关于jQuery中event.target和this的区别详解的文章就介绍到这了,更多相关jQuery中event.target和this内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

jQuery 相关文章推荐
基于jquery实现五星好评
Nov 18 jQuery
jquery自定义显示消息数量
Dec 19 jQuery
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 jQuery
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
jQuery仿移动端支付宝键盘的实现代码
Aug 15 jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
JQuery实现ajax请求的示例和注意事项
Dec 10 jQuery
jquery+css实现Tab栏切换的代码实例
May 14 jQuery
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
Jul 03 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
jQuery列表动态增加和删除的实现方法
Nov 05 jQuery
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 #jQuery
Jquery cookie插件实现原理代码解析
Aug 04 #jQuery
jQuery实现雪花飘落效果
Aug 02 #jQuery
jQuery实现滑动开关效果
Aug 02 #jQuery
jQuery实现开关灯效果
Aug 02 #jQuery
jquery轮播图插件使用方法详解
Jul 31 #jQuery
jQuery带控制按钮轮播图插件
Jul 31 #jQuery
You might like
11个PHP 分页脚本推荐
2011/08/15 PHP
php中文验证码实现示例分享
2014/01/12 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
js打造数组转json函数
2015/01/14 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
深入理解Promise.all
2018/08/08 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
python中map、any、all函数用法分析
2015/04/21 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
Python中协程用法代码详解
2018/02/10 Python
Python连接Redis的基本配置方法
2018/09/13 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
Python如何定义有可选参数的元类
2020/07/31 Python
如何将字串String转换成整数int
2015/02/21 面试题
物业管理员岗位职责范文
2013/11/25 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
庆元旦主持词
2015/07/06 职场文书
校运会通讯稿
2015/07/18 职场文书
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js