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