从方法js中的函数获取对象属性

时间:2012-07-18 14:43:36

标签: javascript jquery oop

  

可能重复:
  How to get the this of a object in a handler for a click event in jquery?

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

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时(没有绑定到鼠标按下),每件事都可以。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

.mousedown this的函数正文中指的是$('#map')找到的DOMElement。

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