Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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
Javascript 为什么jquery淡出在setTimeout中表现得很奇怪?_Javascript_Jquery_Html_Settimeout - Fatal编程技术网

Javascript 为什么jquery淡出在setTimeout中表现得很奇怪?

Javascript 为什么jquery淡出在setTimeout中表现得很奇怪?,javascript,jquery,html,settimeout,Javascript,Jquery,Html,Settimeout,我有以下代码: clearTimeout(tooltiptimeout); tooltiptimeout=""; $("#tool").fadeOut("slow").queue(function(){ tooltiptimeout=setTimeout(function(){ $("#tool").css("left",item.pageX-33); $("#tool").css( "top",item.pageY-95); $("#t

我有以下代码:

clearTimeout(tooltiptimeout);
tooltiptimeout="";

$("#tool").fadeOut("slow").queue(function(){
    tooltiptimeout=setTimeout(function(){
        $("#tool").css("left",item.pageX-33);
        $("#tool").css( "top",item.pageY-95);
        $("#tool").fadeIn("slow");
    }, 1000);
    $(this).dequeue();
});
它应该做的是:当用户将鼠标悬停在对象上时,工具提示将显示在那里。然后,当用户移开鼠标时,工具提示应立即开始淡出。稍后,当用户将鼠标停留在另一个对象上时,在工具提示显示在新位置之前,将调用1秒钟的超时

问题是,现在淡出不会立即被调用,而是只在setTimeout发生时发生。(即不是先淡出,然后在一段时间后出现。此时工具提示保持不变,然后在一段时间后淡出,然后在新位置淡入)

有什么好处

顺便说一句,这个代码有同样的问题:

    $("#tool").fadeOut("slow",function(){
    tooltiptimeout=setTimeout(function(){
        $("#tool").css("left",item.pageX-33);
        $("#tool").css( "top",item.pageY-95);
        $("#tool").fadeIn("slow");
    }, 1000);
});

编辑:根据下面更新的评论更改了答案

请尝试以下操作:

$("#tool").fadeOut("slow").delay('1000')
    .css("left",item.pageX-33)
    .css( "top",item.pageY-95)
    .fadeIn("slow");

这与我想要的正好相反我希望淡出立即发生,但淡出将在1秒后发生。现在它们都发生在1秒后。啊好的!然后试试这个
.fadeOut('slow')。delay(1000)。fadeIn('slow')API文档延迟-哈哈,这很有效!我仍然很好奇为什么以前的解决方案不起作用。