jquery:正在退出函数

jquery: Exiting function

本文关键字:退出 函数 jquery      更新时间:2023-09-26

我在jquery中做动画。我有一张从网页的左到右移动的循环图片。我使用了以下代码:

 function run() {  $("#run").animate({ left: "980px" }, 250).animate({
  left: "-600px" }, 0);   setTimeout("run()", 250);
 }

我想在按下按钮后停止循环(或中断功能)。

setTimeout返回一个可以用来取消它的vlaue,

//Start
var ref = setTimeout(...);
//Stop
clearTimeout(ref);

此外,如果只是使用一个函数,那么只传递它比强制执行eval、更安全

setTimeout(run, 250);

听起来你希望这个动画一直运行到用户按下按钮。为此,我会设置一个setInterval循环,并使用clearInterval在点击按钮时停止它

var runTimer = setInterval(function() {
  $("#run").animate({ left: "980px" }, 250).animate({ left: "-600px" }, 0);   
}, 250);
$('#stopAnimation').click(function () {
  clearInterval(runTimer);
}

您想要调用清除超时。

var timeout;
 function run() {  $("#run").animate({ left: "980px" }, 250).animate({
  left: "-600px" }, 0); 
   timeout =setTimeout("run()", 250);
 }
 function cancel() { clearTimeout(timeout); }

在每个动画之前尝试方法stop()

function run() { 
    $("#run").stop().animate({ left: "980px" }, 250, function(){
        $(this).css('left', '-600px');
    });
    setTimeout("run()", 250); 
}