2011-08-15 6 views
0

data.target == thisの仕組みは?このコードは何をしますか? "data.target == this"

jqueryの例

.mouseup(function(data, handler) 
     { 
      if(data.target == this) 
      { 
       // some code 
      } 
     }) 

これは、それぞれの特性のそれぞれを比較することによって、オブジェクトを比較していますか?

親のdivと1つの子にのみマウスアップが必要なので、このチェックが必要です。

if (data.target == this || * if this has className XXX *) { 
    // some code 
} 
+0

http://rayfd.wordpress.com/2007/03/18/really-understanding-javascripts-equality-and-identity/ –

答えて

3

if (data.target == this)thisdata.targetとしてメモリ内の同じオブジェクトを参照した場合に真と評価。

==演算子はメンバー値を比較しません。 Object comparison in JavaScriptを参照してください。

+1

(「===」と同じです)[そしてここには証拠があります](http ://jsfiddle.net/f7g8s/)。 –

0

JQueryを使用しているので、比較を心配する必要はありません。ただ.liveを使用して、興味のある2つの要素にmouseupをバインドしてください。

$(myDiv).live('mouseup',myFunction()); 
$(myChildElement).live('mouseup',myFunction()); 

mousedownがターゲットに設定されていない状況を処理するコードを記述する必要があります。ユーザーは別の場所をクリックし、マウスをターゲット上にドラッグして解放しました。

関連する問題