我经常遇到使用jQuery编写javascript的一个问题是,当一个对象的方法涉及添加一个事件监听器'this'从对该对象的引用变为对触发该事件的DOM元素的引用
目前,如果我想从事件处理程序中引用该对象,我会执行以下操作:
var theObject = this;
$('selector').click(function() {
theObject.methodToApply();
$(this).css('background','red');
});
是否有更好的方法来处理事件总是要重新分配'this'
的事实答案 0 :(得分:4)
你在做什么是在jQuery中处理它的标准方法。 jQuery的下一个版本将使您能够定义您希望此上下文的内容。阅读Brandons blog帖子了解更多信息。
答案 1 :(得分:0)
此更改的原因是因为javascript范围的工作原理。如果你想做任何严肃的js,最好理解这个基本概念。
这里对这个概念的解释: