Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 停止jquery动画循环(函数和嵌套)_Javascript_Jquery - Fatal编程技术网

Javascript 停止jquery动画循环(函数和嵌套)

Javascript 停止jquery动画循环(函数和嵌套),javascript,jquery,Javascript,Jquery,如何阻止jquery动画在用户交互时加载 $('#jqNav li a').click(function(){ if($(this).parent().is(".nav1")){ $('.landing .main .nav ul').css({ "background-position" : "0 -50px" });} else if($(this).parent().is(".nav2")) { $('.landing .main .nav ul').css({

如何阻止jquery动画在用户交互时加载

    $('#jqNav li a').click(function(){

    if($(this).parent().is(".nav1")){ $('.landing .main .nav ul').css({ "background-position" : "0 -50px" });} 
    else if($(this).parent().is(".nav2")) { $('.landing .main .nav ul').css({ "background-position" : "0 -100px" });}
    else if($(this).parent().is(".nav3")) { $('.landing .main .nav ul').css({ "background-position" : "0 -150px" });}
    else if($(this).parent().is(".nav4")) { $('.landing .main .nav ul').css({ "background-position" : "0 -200px" });};

    $page = $(this).attr('href');
    var $hashTag = $(this).attr('name');
    window.location = "#" + $hashTag;
    loadData();
    return false;
});
这是用户点击功能

    function doReplay(){
    $('body')
    .fadeTo(0,1,function(){
        $page = $welcome;
        loadData();

    })
    .delay(1000)
    .fadeTo(0,1,function(){
        $page = $startup;
        loadData();
    })
    .delay(1000)
    .fadeTo(0,1,function(){
        $page = $to2m;
        loadData();
    })
    .delay(1000)
    .fadeTo(0,1, function(){
        $page = $to25m;
        loadData();
        setTimeout(function(){doReplay();},5000);
    });
}
以上是动画功能


我尝试过clearTimeout,但它似乎不起作用。

您可以添加一个布尔值,以便在动画方法中进行检查

if (!stopAnim) { setTimeout(function(){doReplay();},5000); }

我不确定我是否真的理解你想要实现的目标。是否希望在执行单击功能后不触发动画功能?@Jivings这是正确的,从何处调用doReplay?@Jivings在文档上调用它已准备就绪,因此onClick会更改window.location,并在更改后调用doReplay。但是你只想在页面不是从onClick加载时调用它?你能给你的答案添加更多的上下文吗?我尝试用你的代码替换我原来的settimeout,并在document ready中添加了一个全局变量,stopAni=true;在我的单击函数中,如果您阅读了注释,则页面正在重新加载,因此没有持久变量。@Jivings页面本身没有重新加载,我正在使用.load()将div加载到页面中。哦,在这种情况下,这是一种很好且简单的方法。
var stopAnim;
$('#jqNav li a').click(function(){
     ...

     stopAnim = true;
}

function doReplay(){

     if(!stopAnim){
         // do animation
     }
}