何时使用$(this)和e.target?
我对$(this)没有混淆,但e.target对我来说很困惑,因为它可以执行与$(this)相同的操作。 (或者我错了?)
$(document).on('click',"div", function(){
$(this).css('color', 'red');
}
});
VS
$(document).on('click',"div", function(e){
$(e.target).css('color', 'red');
}
});
答案 0 :(得分:8)
如果您点击事件被绑定的元素,它们将是相同的。但是,如果单击一个子项并且它出现气泡,则this
引用此处理程序绑定的元素,e.target
仍然引用事件源自的元素。
答案 1 :(得分:3)
e.target属性可以是注册事件的元素,也可以是该元素的后代。您可以将其与$(this)进行比较,以确定是否由于事件冒泡而发生了事件委派。