我正在尝试处理 mouseover/mouseout 动画,当您将鼠标悬停在您之前将鼠标悬停在其上的元素上时,我的声明未评估为 true。我正在尝试防止出现双重翻转动画。这是我的代码:
var $chosenThumb = null;
var $lastThumb = null;
$('.thumb_img').mouseover(function(){
if ($chosenThumb != null){
$lastThumb = $chosenThumb;
$lastThumbContainer = $chosenThumb.parent();
$lastThumbOverlay = $lastThumbContainer.children('.thumb_overlay');
}
$chosenThumb = $(this);
console.log($lastThumb + "|" + $chosenThumb + "|" + ($lastThumb == $chosenThumb));
$chosenThumbContainer = $(this).parent();
$chosenThumbOverlay = $chosenThumbContainer.children('.thumb_overlay');
if ($lastThumb != null && $lastThumb != $chosenThumb){
$lastThumbOverlay.animate({ 'height' : '0px'}, 200);
$lastThumbContainer.children('.thumb_plus').animate({'height' :'0px', 'width' : '0px' },200);
}
if ($lastThumb != $chosenThumb) {
$chosenThumbOverlay.animate({ 'height' : '30px'}, 200);
$chosenThumbContainer.children('.thumb_plus').animate({'height' :'31px', 'width' : '31px' },200);
}
});
因此,当您第一次将鼠标悬停在缩略图上时,lastThumb 将为空,而 chosenThumb 将成为您滚动的拇指。然后下次将鼠标悬停在该缩略图上时,lastThumb 应等于 chosenThumb,但日志语句的计算结果不为真。为什么?
最佳答案
即使使用相同的选择器,每个 jQuery 对象都是 jQuery
的新实例。要比较元素,您必须比较实际的 DOM 元素:
//$lastThumb[0] returns the first DOM element from the jQuery selector
$lastThumb[0] == $chosenThumb[0]
关于javascript - 将两个变量设置为同一 dom 元素时,jquery 语句未评估为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376983/