【发布时间】:2010-07-13 16:43:29
【问题描述】:
我有这个代码:
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);
});
【问题讨论】:
标签: javascript jquery html settimeout