jQuery 鼠标悬停时设置间隔
jQuery setInterval on mouseover
我有一个我自己无法解决的问题。一旦他们将鼠标悬停在照片上,我想显示一个倒数计时器。它在您第一次悬停时起作用。如果你移动鼠标并再次悬停,它只会是奇怪的数字跳跃。
我希望有人能帮我解决这个问题!
此致,
塔西洛
<script>
$('.Photo').on({
'mouseover': function () {
var timer = 5;
var interval = setInterval(function() {
timer--;
$('.timer').text(timer);
if (timer === 0) clearInterval(interval);
}, 1000);
},
'mouseout' : function () {
clearTimeout(timer);
}
});
</script>
我认为这是因为 timer
变量是在 mouseover()
中本地声明的,而您正试图在 mouseout()
中清除它。尝试将其放在 $('.Photo').on({ });
之外
此外,将您的 interval
变量放在外面,以便您可以在 mouseout()
函数中清除它。
<script>
var interval;
var timer = 5;
$('.photo').on({
'mouseover': function () {
interval = setInterval(function() {
timer--;
$('.timer').text(timer);
if (timer === 0) clearInterval(interval);
}, 1000);
},
'mouseout' : function () {
clearInterval(interval);
timer = 5;
}
});
</script>
我有一个我自己无法解决的问题。一旦他们将鼠标悬停在照片上,我想显示一个倒数计时器。它在您第一次悬停时起作用。如果你移动鼠标并再次悬停,它只会是奇怪的数字跳跃。 我希望有人能帮我解决这个问题!
此致,
塔西洛
<script>
$('.Photo').on({
'mouseover': function () {
var timer = 5;
var interval = setInterval(function() {
timer--;
$('.timer').text(timer);
if (timer === 0) clearInterval(interval);
}, 1000);
},
'mouseout' : function () {
clearTimeout(timer);
}
});
</script>
我认为这是因为 timer
变量是在 mouseover()
中本地声明的,而您正试图在 mouseout()
中清除它。尝试将其放在 $('.Photo').on({ });
此外,将您的 interval
变量放在外面,以便您可以在 mouseout()
函数中清除它。
<script>
var interval;
var timer = 5;
$('.photo').on({
'mouseover': function () {
interval = setInterval(function() {
timer--;
$('.timer').text(timer);
if (timer === 0) clearInterval(interval);
}, 1000);
},
'mouseout' : function () {
clearInterval(interval);
timer = 5;
}
});
</script>