1

我经常遇到使用 jQuery 编写 javascript 的一个问题是,当对象的方法涉及添加事件侦听器时,“this”从对对象的引用变为对触发事件的 DOM 元素的引用。

目前,如果我想从事件处理程序中引用对象,我会执行以下操作:

var theObject = this;
$('selector').click(function() {
   theObject.methodToApply();
   $(this).css('background','red');
});

有没有更好的方法来处理事件总是想重新分配“this”的事实

4

2 回答 2

4

您所做的是在 jQuery 中处理它的标准方法。jQuery 的下一个版本将使您能够定义您想要的 this 上下文。阅读Brandons 博客文章了解更多信息。

于 2009-08-29T10:01:02.290 回答
0

这种变化的原因是由于 javascript 作用域是如何工作的。如果你想做任何严肃的 js,最好理解这个基本概念。

在这里解释这个概念:

jQuery/JavaScript“this”指针混淆

于 2009-08-30T17:29:17.643 回答