首先,这是迷你javascript脚本:
f = 1
$(".thumb").hover(function() {
intervalId = setInterval($(this).text(f++), 400));
});
我试图在用户移动鼠标时使.thumb文本增加,当我将鼠标悬停并再次悬停时,它会增加。但是,当用户将鼠标悬停在元素上方时,我想增加该文本。
最佳答案
您必须像这样将实际函数传递给setInterval()
:
f = 1
$(".thumb").hover(function() {
var self = $(this);
intervalId = setInterval(function() {self.text(f++)}, 400));
});
您在原始代码中所做的就是将调用
$(this).text(f++)
的结果传递给setInterval()
,该结果立即执行。由于该函数不会返回任何函数,因此setInterval()
没有回调函数,因此在该间隔上没有任何运行。如果您还想在停止悬停时停止间隔,则可以执行以下操作:
var f = 1;
var intervalId;
$(".thumb").hover(function() {
var self = $(this);
if (intervalId) {
clearInterval(intervalId);
}
intervalId = setInterval(function() {self.text(f++)}, 400));
}, function() {
f = 1;
clearInterval(intervalId);
intervalId = null;
});