【问题标题】:obtaining object property from function in method js [duplicate]从方法js中的函数获取对象属性[重复]
【发布时间】:2012-07-18 14:43:36
【问题描述】:

可能重复:
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 时(不绑定到鼠标按下),一切正常。有人可以帮我解决这个问题吗?

【问题讨论】:

标签: javascript jquery oop


【解决方案1】:

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

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

【讨论】:

  • 完全准确地说,它实际上是DOMElement,而不是jQuery对象。
  • 你能给我举个例子吗?我不明白.. 编辑。哦,是的,没错,但我该如何解决这个问题?
  • 感谢它的工作! :)
猜你喜欢
  • 2018-08-30
  • 2011-09-12
  • 2012-12-07
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 2015-01-07
相关资源
最近更新 更多