Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 JS/jQuery函数意味着只重复一次触发器_Javascript_Jquery - Fatal编程技术网

Javascript JS/jQuery函数意味着只重复一次触发器

Javascript JS/jQuery函数意味着只重复一次触发器,javascript,jquery,Javascript,Jquery,我想在JS&jQuery中制作一个简单的横幅旋转器。我想让它循环运行,但问题是它只在页面加载后立即触发,而不是从那以后 这是我的密码: var stop = false; var tar = 1; function slide(){ if(!stop){ switch(tar){ case 1: jQuery("#um1").toggle(300, function(){jQuery("#um2").toggle(300)

我想在JS&jQuery中制作一个简单的横幅旋转器。我想让它循环运行,但问题是它只在页面加载后立即触发,而不是从那以后

这是我的密码:

var stop = false;
var tar = 1;

function slide(){
    if(!stop){
        switch(tar){
            case 1:
            jQuery("#um1").toggle(300, function(){jQuery("#um2").toggle(300);});
            tar=2;
            break;
            case 2:
            jQuery("#um2").toggle(300, function(){jQuery("#um3").toggle(300);});
            tar=3;
            break;
            case 3:
            jQuery("#um3").toggle(300, function(){jQuery("#um1").toggle(300);});
            tar=1;
            break;
        }
    }
}

jQuery(function(){
    jQuery("#logosect").mouseenter(function(){ stop=true; });
    jQuery("#logosect").mouseleave(function(){ stop=false; });

    window.setInterval(slide(), 5000);
});

您需要将函数引用传递给,在本例中,调用setInterval()并将其返回的值(在本例中未定义)作为对setInterval的回调时,将调用
slide()

window.setInterval(slide, 5000);

我建议将clearInterval用于性能问题。这应该对你有用

var tar = 1;
var slideInterval;

function slide(){
        switch(tar){
            case 1:
            jQuery("#um1").toggle(300, function(){jQuery("#um2").toggle(300);});
            tar=2;
            break;
            case 2:
            jQuery("#um2").toggle(300, function(){jQuery("#um3").toggle(300);});
            tar=3;
            break;
            case 3:
            jQuery("#um3").toggle(300, function(){jQuery("#um1").toggle(300);});
            tar=1;
            break;
        }
}

jQuery(function(){
    jQuery("#logosect").mouseenter(function(){ 

         clearInterval( slideInterval );

    }).mouseleave(function(){ 

        slideInterval = window.setInterval(slide, 5000);

    }).trigger("mouseleave");


});

第一次运行后,您的控制台中有任何错误吗?忍者以秒+1:)