0

我试图通过一些 if 语句运行,在 if 语句中更改全局变量“var1”,并在另一个 mouseup 事件时比较该值并根据 var1 的值继续。

当我逐步执行代码并且 var1 等于 $this 时,if 语句被传递,就好像不是真的一样。比较可能有什么问题,为什么即使它是真的也会被忽略。

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 对象的引用数组。尽管两个 jQuery 对象可能在内部包含相同的引用,但它们是不同的对象,因此不是 ==。

前任:

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

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