我想在mouseenter上取消上一个setTimeout()调用,但我不明白为什么jQuery不让我这么做?
这是我的代码:我想在mouseenter上取消上一个setTimeout()调用,但我不明白为什么jQuery不让我这么做?,jquery,css,queue,Jquery,Css,Queue,这是我的代码: $(".pc2").hover(function(){ $('#pc1').show(); $('#pc1a').show(800); }, function(){ $('#pc1').hide(); setTimeout(function(){$('#pc1a').hide();}, 5000); $('#pc1a').mouseenter(function(){
$(".pc2").hover(function(){
$('#pc1').show();
$('#pc1a').show(800);
},
function(){
$('#pc1').hide();
setTimeout(function(){$('#pc1a').hide();}, 5000);
$('#pc1a').mouseenter(function(){
clearTimeout(function(){$('#pc1a').show();});
});
$('#pc1a').mouseleave(function(){
$('#pc1a').hide(800);
});
});
我希望在用户浮动鼠标进入div后,$('pc1a')div保持不变(这样setTimeout(hide())就不会被调用)。这似乎是使用stop()的简单解决方案,clearTimeout();或clearQueue();但我不确定如何根据我的情况正确调用这些方法。你能告诉我并帮我找到解决办法吗
提前感谢clearTimeout接受以前的计时器句柄,而不是函数。保存
setTimeout
的返回值,然后稍后使用该值将其取消
例如:
$(".pc2").hover(
function () {
$('#pc1').show();
$('#pc1a').show(800);
},
function () {
var timer;
$('#pc1').hide();
timer = setTimeout(function () { // <== Save it
$('#pc1a').hide();
}, 5000);
$('#pc1a').mouseenter(function () {
clearTimeout(timer); // <== Cancel it
});
$('#pc1a').mouseleave(function () {
$('#pc1a').hide(800);
});
}
);
$(“.pc2”)。悬停(
函数(){
$('#pc1').show();
元("pc1a").show(800元);;
},
函数(){
无功定时器;
$('#pc1').hide();
timer=setTimeout(函数(){/clearTimeout
接受以前的计时器句柄,而不是函数。保存setTimeout
的返回值,然后稍后使用该值将其取消
例如:
$(".pc2").hover(
function () {
$('#pc1').show();
$('#pc1a').show(800);
},
function () {
var timer;
$('#pc1').hide();
timer = setTimeout(function () { // <== Save it
$('#pc1a').hide();
}, 5000);
$('#pc1a').mouseenter(function () {
clearTimeout(timer); // <== Cancel it
});
$('#pc1a').mouseleave(function () {
$('#pc1a').hide(800);
});
}
);
$(“.pc2”)。悬停(
函数(){
$('#pc1').show();
元("pc1a").show(800元);;
},
函数(){
无功定时器;
$('#pc1').hide();
timer=setTimeout(函数(){/您需要按id调用cleartimout
,试试这个(*更新)
您需要按id调用clearTimeout
,请尝试此(*已更新)
非常感谢,将批准回答一次堆栈让我。非常感谢,将批准回答一次堆栈让我。