0

いくつかのifステートメントを実行し、ifステートメント内のグローバル変数 "var1"を変更し、別のmouseupイベントで値を比較し、var1の値に基づいて続行しようとしています。

コードをステップスルーし、var1が$ thisに等しい場合、ifステートメントはtrueでないかのように渡されます。真の場合でも無視される理由についての比較の問題は何でしょうか。

var var1 = null;
var var2 = null;


$('.button').on(mouseup, function(evt) {

if (var1 == null) {

    Do Something...
    var1 = $(this);
    return;
}

if (var1 == $(this) {

    Do Something...
    var1 = $(this);
    return;
}


});
4

2 に答える 2

1

$(this) を呼び出すと、毎回新しい jQuery オブジェクトが作成されます。それが彼らが一致しない理由です。

例えば: $(document) === $(document) ---> false

于 2012-07-23T09:07:51.533 に答える
0

$(this) を呼び出すと、jQuery が呼び出されて新しい jquery オブジェクトが作成されます。内部的には、jQuery オブジェクトは DOM オブジェクトへの参照の配列です。2 つの jQuery オブジェクトが内部的に同じ参照を含んでいても、それらは別個のオブジェクトであり、したがって == ではありません。

元:

<button id="theId">test</button>

$("#theId").click(function(){alert($(this) == $(this))}); will always display false;
于 2012-07-23T09:18:07.173 に答える