我试图通过一些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;
}
});
答案 0 :(得分:1)
每次调用$(this)都会创建一个新的jQuery对象。这就是他们不匹配的原因。
例如:
$(document) === $(document) ---> false
答案 1 :(得分:0)
当你调用$(this)时,会调用jQuery来创建一个新的jquery对象。在内部,jQuery对象是对DOM对象的引用数组。尽管两个jQuery对象可能在内部包含相同的引用,但它们是不同的对象,因此不是==。
例如:
<button id="theId">test</button>
$("#theId").click(function(){alert($(this) == $(this))}); will always display false;