Event对象中target和currenttarget的区别

首先本质区别是:

event.target返回触发事件的元素

event.currentTarget返回绑定事件的元素

🙋🌰举个例子:

1


7varul = document.getElementById("ul");8ul.onclick =function(event){9vartar = event.target;10vartagName = tar.nodeName.toLowerCase();11console.log("你点击了:"+tagName);12event.preventDefault();13}14

当我点击哪个元素时,event.target返回的是点击的元素节点,我们可以用返回的节点使用一些DOM对象上的一些操作。这里event.preventDefault,是用来阻止点击a默认跳转,刷新页面导致结果不能输出来的一个作用。

event.currentTarget的作用是什么呢,我觉得他和this 的作用是差不多的,始终返回的是绑定事件的元素


实际使用中target的妙用:

target事件委托的定义:本来该自己干的事,但是自己不干,交给别人来干。比如上面的例子中,应该是ul li a 来监控自身的点击事件,但是li a自己不监控这个点击事件了,全部交给li父节点和a祖父节点ul来监控自己的点击事件。一般用到for循环遍历节点添加事件的时候都可以用事件委托来做,可以提高性能。

来个案例:一个添加删除的demo。


9varbutton = document.getElementById("button");10vartext = document.getElementById("text");11varul = document.getElementsByTagName("ul")[0];12varbtnClass = document.getElementsByClassName("btn");13button.onclick =function(){14vardeleteButton = document.createElement("button");15varvalue = text.value;16deleteButton.setAttribute("class","btn");17vardeleteText = document.createTextNode("删除");18deleteButton.appendChild(deleteText);19varli = document.createElement("li");20varliText = document.createTextNode(value);21li.appendChild(liText);22li.appendChild(deleteButton);23ul.appendChild(li);24for(vari=0;i

为什么在第24行也需要一个for循环,给每个删除按钮添加事件呢,因为外面的for循环,在文档刷新时给页面中存在的三个删除按钮添加了点击事件,而后来添加的删除按钮并没有绑定事件,导致页面中存在的三个li标签可以删除,而后来新添加的li不能删除这个问题。我们使用事件委托来做就不用这么麻烦了


给ul添加了点击事件,点击ul里面的子元素,event.target都会返回当前点击的元素节点,做一个判断,如果点击了button标签,删除这个li节点。由于添加的li都在ul节点里面,所以并不用再去添加li事件里面去写代码了,是不是很方便呢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • js中的event对象包含很多有用的信息 target:触发事件的元素。 currentTarget:事件绑定的元...
    空谷悠阅读 2,242评论 0 2
  • 今天面试回来,稍微整理下今天被问到的题目,呀,回答的是乱七八糟,最后百度整理下,以供以后学习。 1,vue 中事件...
    AlisaMfz阅读 482评论 0 0
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,817评论 0 8
  • 回来之后一直想写一篇旅行后感,却一直拖拖拉拉到今天。旅行带给自己精神上和心灵上的感受和变化远远大于旅行本身的所见所...
    小浣熊的自言自语阅读 252评论 0 0
  • 关于爱情,自古是个永恒的话题,多少诗词赋篇。 问世间,情为何物?直教生死相许。 折花枝,恨花枝...
    北国的红豆沙阅读 411评论 0 2