0

可能重复:
如何在 jquery 中的单击事件的处理程序中获取对象的 this?

我正在尝试创建将一些事件绑定到另一个对象方法的对象。我的代码是这样的:

var MAP = MAP || {}
MAP = {
height: 100
/*
 * rest of code
 */
};
var CONFIG = CONFIG || {}
CONFIG = {
  _MAP : MAP,
  setEvents:function(){
   $('#map').mousedown(function(){
   height = this._MAP.height;
   console.log(height);
  }
};
$(function(){ CONFIG.setEvents(); })

而且我无法将 setEvents 方法中的高度与 MAP.height 连接,但是当我直接从方法调用 this._MAP.height 时(不绑定到鼠标按下),一切都很好。有人可以帮我解决这个问题吗?

4

1 回答 1

1

在函数体中 for.mousedown this指的是$('#map')找到的 DOMElement。

为了跟踪正确的this,您希望将其存储在您的闭包中,在对 的调用之外.mousedownvar $this = this例如在setEvents函数中。

于 2012-07-18T14:47:13.633 回答