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插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
基于jquery实现多选下拉列表
Aug 02 jQuery
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
JQuery判断正整数整理小结
Aug 21 jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
jQuery超简单遮罩层实现方法示例
Sep 06 jQuery
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 jQuery
jQuery 选择器用法基础入门示例
Jan 04 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 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
文章推荐系统(二)
2006/10/09 PHP
php发送post请求的三种方法
2014/02/11 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
Javascript的闭包详解
2014/12/26 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
Python 列表(List)操作方法详解
2014/03/11 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
django云端留言板实例详解
2019/07/22 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
Python Selenium库的基本使用教程
2021/01/04 Python
金智子午JAVA面试题
2015/09/04 面试题
班组长竞聘书
2014/03/31 职场文书
春季运动会开幕词
2015/01/28 职场文书
同学聚会感言一句话
2015/07/30 职场文书
2016大一新生军训感言
2015/12/08 职场文书
详解Vue router路由
2021/11/20 Vue.js
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库