我正在使用这个JSFiddle,当我的鼠标离开textarea时,它会关闭。但是,如果我将鼠标悬停在它上面,我无法找到取消此计时器的方法。我甚至试过here的一些例子。这是关闭文本框的代码 -
function close() {
setTimeout(function() {
$(Img).css("transform", "rotateX(0deg)");
$(Txt).css("transform", "rotateX(90deg)");
}, 1000);
}
$(Txt).on("mouseleave", function() {
close();
$(Txt).blur();
});
答案 0 :(得分:1)
您从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);
答案 1 :(得分:0)
setTimeout函数返回处理程序,稍后您可以使用该处理程序重置计时器。
例如,
var myVar;
function myFunction() {
myVar = setTimeout(function(){ alert("Hello") }, 3000);
}
function myStopFunction() {
clearTimeout(myVar);
}
答案 2 :(得分:0)
你试过了吗?
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);
});