Javascript OnMouseOver开始循环,OnMouseOut终止循环
我创建了一个小函数,当您将鼠标悬停在图像上时,它可以循环显示图像:Javascript OnMouseOver开始循环,OnMouseOut终止循环,javascript,jquery,loops,Javascript,Jquery,Loops,我创建了一个小函数,当您将鼠标悬停在图像上时,它可以循环显示图像: function THUMB_ROLL(NEXT) { LENGTH = ALL_IMAGES.length; if(!LENGTH) { return false; } if(!NEXT || NEXT === LENGTH) { NEXT = 0 }
function THUMB_ROLL(NEXT)
{
LENGTH = ALL_IMAGES.length;
if(!LENGTH) { return false; }
if(!NEXT || NEXT === LENGTH) { NEXT = 0 }
$('#IMAGE_THUMB').css('background-image','url(/<?php echo $ITEM_CODE;?>/'+ALL_IMAGES[NEXT]+')');
setTimeout(function()
{
THUMB_ROLL(NEXT+2)
},800);
}
</script>
功能拇指滚轮(下一步)
{
长度=所有图像的长度;
如果(!LENGTH){返回false;}
如果(!NEXT | | NEXT==LENGTH){NEXT=0}
$(“#IMAGE_THUMB”).css('background-IMAGE','url(//'+所有_图像[NEXT]+'));
setTimeout(函数()
{
拇指滚动(下一个+2)
},800);
}
我有,onmouseover=“THUMB_ROLL();”
但是,我似乎无法找到一个解决方案来停止循环。感谢您的帮助
编辑
无功定时器;
功能拇指滚轮(下一个)
{
长度=所有图像的长度;
如果(!LENGTH){返回false;}
如果(!NEXT | | NEXT==LENGTH){NEXT=0}
$(“#IMAGE_THUMB”).css('background-IMAGE','url(//'+所有_图像[NEXT]+'));
计时器=设置超时(函数()
{
拇指滚动(下一个+1)
},800);
}
$(document).on('mouseover','IMAGE#u THUMB',function()
{
拇指滚动();
});
$(document).on('mouseout','IMAGE#u THUMB',function()
{
清除超时(计时器);
});
将超时指定给存储timerID的变量
然后让moout清除超时,这将停止流
var timer;
// mouseover event..
timer = setTimeout(function() {
THUMB_ROLL(NEXT+2)
},800);
// mouseout event
clearTimeout(timer);
另外,最好将关注点分开,并将事件附加到脚本标记中,而不是内联附加。你不能停止一个函数,你必须创建另一个函数,以某种方式停止重复。我照你说的做了。在上面的编辑部分下。我做错了什么?它只经过下一个图像并停止。NVM我明白了!非常感谢!
var timer;
// mouseover event..
timer = setTimeout(function() {
THUMB_ROLL(NEXT+2)
},800);
// mouseout event
clearTimeout(timer);