我制作了一个定时功能,该功能在页面加载后会延迟9秒钟,然后再开始。但是,如果用户与它所影响的div交互,我希望取消它。这是我被调用的函数的代码。

function buttonchange4(){
  $(".button4").css("backgroundColor","yellow").delay(3000).queue(function(next4){
  $(".button4").css("backgroundColor","silver");
     next4();
  });
};

var buttonshow3;
  $(document).ready(function(){
  $(".button4").delay(9200).queue(function(nextoooo){
      buttonchange4();
      buttonshow3 = setInterval( buttonchange4, 12000);
      nextoooo();
  });
});


这是我停止该功能的代码。

$('.button4').click(function(){
   $( ".button4" ).stop();
   clearInterval(buttonshow3);
   $('.button4').css("backgroundColor","yellow");
});


出于某种原因,经过3秒钟的延迟后,它仍将按钮的背景颜色更改为银色...似乎停止了延迟功能,直接跳到buttonchange4();如何停止此操作?

最佳答案

return;中断并停止功能

如果您想打破TimeInterval,可以这样:

var i = setInterval(FunctionA, 1000);
clearInterval( i );


或者您可以使用delay()停止dequeue();

$( ".button4" ).dequeue();

09-26 16:02