3

何时使用 $(this) 和 e.target?

我对 $(this) 并不感到困惑,但 e.target 对我来说是令人困惑的,因为它可以执行与 $(this) 相同的事情。(或者我错了?)

$(document).on('click',"div", function(){
        $(this).css('color', 'red');
    }
});

对比

$(document).on('click',"div", function(e){
        $(e.target).css('color', 'red');
    }
});
4

2 回答 2

8

如果您单击事件被操纵的元素,它们将是相同的。但是,如果您单击一个子元素并且它冒泡,则this指的是该处理程序绑定到e.target的元素,并且仍然指的是事件起源的元素。

于 2013-09-08T12:26:57.653 回答
3

e.target 属性可以是注册事件的元素,也可以是该元素的后代。您可以将其与 $(this) 进行比较,以确定是否由于事件冒泡而发生了事件委托。

于 2013-09-08T12:29:40.280 回答