我正在使用jQuery将积极点击的项目存储在项目列表中。我想检测新点击的项目是否与之前点击的项目相同,以切换支持div
的可见性。我的代码如下所示:
var curPin;
$('.pin').click(function(){
var $pin = $(this);
if (curPin == $pin){
console.log('true');
} else {
curPin = $pin;
console.log('false');
}
}
为什么这不平等?有更好的方法吗?
答案 0 :(得分:3)
使用if ($(this).is(curPin))
检查元素是否相同。
答案 1 :(得分:1)
您不会比较元素,但jQuery对象和jQuery对象始终被视为不同,即使它们包含完全相同的元素。
比较DOM元素本身确实可以解决您的问题。正如Esailija所建议的那样,您可以使用is()方法来检查curPin
中存储的jQuery对象是否包含当前元素:
var curPin;
$(".pin").click(function() {
var $pin = $(this);
if (curPin.is(this)) {
console.log("true");
} else {
curPin = $pin;
console.log("false");
}
}
答案 2 :(得分:1)
只需比较DOM元素:
if(curPin.get(0) == $pin.get(0)) {
// do something
}
答案 3 :(得分:0)
如果你的元素有一个id,你可以用它来比较 -
var curPin;
$('.pin').click(function(){
var $pin = $(this).attr('id');
if (curPin == $pin)
{
console.log('true');
}
else
{
curPin = $pin;
console.log('false');
}
}