关于e.currentTarget
来源:3-2 项目作业
soso_crazy
2019-06-13 12:08:33
function addClick() {
$('.left-bar-inner').on('click','.left-item',function (e) {
var $target=$(e.currentTarget); //指的是.left-item
console.log(e.target.className);
console.log(e.currentTarget.className);
$target.addClass('active');
$target.siblings().removeClass('active');
});
}
运用了事件代理,但是e.currentTarget和e.target指的是谁?
我上网查过:
事件委托是什么呢?最简单来说:在父元素上添加可以处理子元素事件的事件处理函数。利用了事件冒泡,指定一个事件处理函数,来处理同一种类型的多个事件。这里顺便一起说下target和currenttarget的区别,target是触发事件的最具体的元素, currenttarget是绑定事件的元素(在函数中一般等于this)。
那为什么这里的e.currentTarget不是.left-bar-inner?
这里的currentTarget和target为什么有时是一致有时却是不一致的?
2回答
好帮手慕星星
2019-06-13
你好,点击事件绑定在了left-item上哦:
on绑定事件第二个参数是选择器:
这样写就是把点击事件绑定在了left-item上,不是left-bar-inner上。
所以target和currentTarget结果是一样的,自己可以再举例测试下。
好帮手慕星星
2019-06-13
你好,
1、target和currentTarget的区别理解的没有问题。
2、点击的地方不同,target指向也是不同的哦,例如:
效果:
点击红色部分li输出结果就是li元素,点击数字11,输出结果就是span,所以点击位置不同,元素也会不同。
祝学习愉快!
相似问题