使用 jQuery hover 你如何检查你是否刚刚再次悬停在同一个元素上?假设我有两个框并悬停在框 1 上,然后离开,然后返回并悬停在同一个框上。我想存储初始悬停元素的值(框 1),然后比较悬停时是否相同。
谢谢!!
使用 jQuery hover 你如何检查你是否刚刚再次悬停在同一个元素上?假设我有两个框并悬停在框 1 上,然后离开,然后返回并悬停在同一个框上。我想存储初始悬停元素的值(框 1),然后比较悬停时是否相同。
谢谢!!
试试下面的东西,
var lastHovered = '';
$('#box1').hover(function () {
if (lastHovered == 'box1') {
alert('You have hovered on this already');
}
lastHovered = 'box1';
//Your stuff
}, function () {
//mouse out stuff
});
$('#box2').hover(function () {
if (lastHovered == 'box2') {
alert('You have hovered on this already');
}
lastHovered = 'box2';
//Your stuff
}, function () {
//mouse out stuff
});
注意:我使用了 2 个函数,假设 box1 hover 和 box2 hover 具有完全不同的功能......如果不是,你可以将它放在同一个函数中并用于this.id
对它们进行分组......见下文。
var lastHovered = '';
$('#box1, #box2').hover(function () {
if (lastHovered == this.id) { //<-- used this.id instead of hard-coded value
alert('You have hovered on ' + this.id + ' already');
}
lastHovered = this.id; //<-- used this.id instead of hard-coded value
//Your stuff
}, function () {
//mouse out stuff
});
var lastHovered = null;
$('#selector1,#selector2,#selector3').hover(function (evt) {
if(lastHovered && lastHovered === $(this).attr("id")){
//code for 're-hovering'
}else{
//code for 'new hover'
}
}, function (evt) {
//mouse out stuff
lastHovered = $(this).attr("id");
});
使用 .data() http://api.jquery.com/data/等等首先在回调中悬停做类似的事情
if (!$(this).data('var')) {
$(this).data('var','value');
} else {
console.log($(this).data('var'));
};