Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OnMouseOver开始循环,OnMouseOut终止循环_Javascript_Jquery_Loops - Fatal编程技术网

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);