Alo*_*lon 12 javascript jquery
这句话总是如此吗?
$("p").click(function(event) {
alert( event.currentTarget === this );
});
Run Code Online (Sandbox Code Playgroud)
一种方法比另一种方法更受欢迎吗?我喜欢用$(this)而不是 event.currentTarget但在某些情况下可以做得更好吗?哪个更好?绝对一样吗?
另一个细微差别 - 当检查萤火虫console.log(this)并console.log($(this))给我完全相同的元素.如果它们是相同的 - 有什么不同?(因为我知道我可以写这个$(this).css('color','white')但不能写this.css('color','white')
lon*_*day 13
一般来说,是的,它会是一样的.您可以通过使用$.proxy操作上下文来使其不同,但在实践中您可能永远不会.
$(document.body).on('click', $.proxy(function(e) {
console.log(this); // window
console.log(e.currentTarget); // document.body
}, window));
Run Code Online (Sandbox Code Playgroud)
至于另一个问题,this是一个本机DOM元素,而是$(this)一个包装该DOM元素的jQuery对象.jQuery包装器意味着您可以运行jQuery函数css,这些函数在本机DOM元素上不可用.
而且,为了回答你问题的准确措辞,event.currentTarget通常是等于this,而不是$(this).
| 归档时间: |
|
| 查看次数: |
4669 次 |
| 最近记录: |