正在停止计时器

Stopping a timer

本文关键字:计时器      更新时间:2024-05-29

我正在处理这个JSFiddle,当我的鼠标离开文本区域时,它就会关闭。但是,如果我把鼠标悬停在这个计时器上,我找不到取消这个计时器的方法。我甚至尝试了一些例子。这是关闭文本框的代码——

function close() {
     setTimeout(function() {
       $(Img).css("transform", "rotateX(0deg)");
       $(Txt).css("transform", "rotateX(90deg)");
    }, 1000);
  }
$(Txt).on("mouseleave", function() {
   close();
   $(Txt).blur();
});

您从W3Schools发布的链接正是您所需要的。。。

setTimeout()返回一个参考值,您可以稍后将其传递给clearTimeout()以取消计时器。

var timerID; //set outside the function
function close() {
     timerID = setTimeout(function() {
       $(Img).css("transform", "rotateX(0deg)");
       $(Txt).css("transform", "rotateX(90deg)");
    }, 1000);
  }
$(Txt).on("mouseleave", function() {
   close();
   $(Txt).blur();
});
//somewhere else do this...
clearTimeout(timerID);

setTimeout函数返回一个处理程序,以后可以用来重置计时器。

例如,

var myVar;
function myFunction() {
    myVar = setTimeout(function(){ alert("Hello") }, 3000);
}
function myStopFunction() {
    clearTimeout(myVar);
}

您尝试过吗:

var myTimeout;
function close() {
     myTimeout = setTimeout(function() {
       $(Img).css("transform", "rotateX(0deg)");
       $(Txt).css("transform", "rotateX(90deg)");
    }, 1000);
  }
$(Txt).on("mouseleave", function() {
   close();
   $(Txt).blur();
}).on("mouseenter", function() {
   clearTimeout(myTimeout);
});