Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想在mouseenter上取消上一个setTimeout()调用,但我不明白为什么jQuery不让我这么做?_Jquery_Css_Queue - Fatal编程技术网

我想在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
,请尝试此(*已更新)


非常感谢,将批准回答一次堆栈让我。非常感谢,将批准回答一次堆栈让我。