0
我有這樣的代碼:爲什麼jQuery的fadeOut與setTimeout奇怪地行事?
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);
});
這就是我想要的不過是相反的。 = /我想淡出發生立即,但淡入發生1秒後。現在它們都在1秒後出現。 – 2010-07-13 17:00:25
啊,好的!試試這個然後'.fadeOut('slow')。delay(1000).fadeIn('slow');'API Docs on delay - http://jqapi.com/#p=delay – HurnsMobile 2010-07-13 17:05:36
哈哈,我仍然很好奇爲什麼以前的解決方案不起作用。 – 2010-07-13 17:13:12