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メソッドのheightをMAP.heightに接続することはできませんが、this._MAP.heightをメソッドから直接呼び出すと(マウスを下に向けてバインドするのではなく)、すべて問題ありません。誰かが私がこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

1

関数本体では、見つかっ.mousedown thisた DOMElement を参照し$('#map')ます。

適切な を追跡するためにthis、 への呼び出しの外側のクロージャーに格納する必要があります.mousedown。 たとえばvar $this = this、関数で。setEvents

于 2012-07-18T14:47:13.633 に答える