2009-09-18 67 views
0

這是來自this one的下一個附加問題。JQuery鼠標超時第2部分

$('.overlay').bind("mouseenter",function(){ 
    $(this).fadeTo('slow', 0); 
}).bind("mouseleave",function(){ 
    var $this = $(this);        
    setTimeout(function() { 
    $this.fadeTo('slow', 1); 
    }, 2000); 
}) 

之下我.overlay DIV我有我想要點擊的內容位。因此,在這種情況下,.overlay會淡化爲0不透明度,但仍涵蓋下面的內容。

如果我在此處使用​​和fadeIn(),則.overlay會完全消失,並且腳本認爲我已將鼠標移出,即使我仍然懸停在.overlay上。

+0

如果它有助於看到發生了什麼檢查http://wearelesscommon.com/wordpress – strangerpixel 2009-09-18 16:08:17

回答

0

覆蓋仍然在吃鼠標事件,即使其不透明度爲零。事實上,您的解決方案取決於此,因爲您無法觸發疊加層上的mouseentermouseleave事件,並且仍然具有可點擊的元素。

可能最好的做法是改爲在容器div中的兄弟姐妹之下製作覆蓋圖和元素。容器應該有綁定到它的mouseentermouseleave動作,並且當疊加層完全淡出時,它也應該隱藏。這將允許您訪問點擊它下面的元素。

關鍵是要能夠點擊疊加層下方的元素,即使它完全透明,它也必須隱藏或不覆蓋下面的元素。

順便說一句,我認爲這種行爲是針對瀏覽器的。例如,在IE中,您可能會被允許點擊透明疊加層下方,但在FF中卻無法點擊。

+0

謝謝,這很有效。然而,它仍然很溫和,有時它不會在多次迭代腳本後保持淡出狀態。如果鼠標在動畫時移動,它可能需要一個步驟來取消淡入淡出。最後,我淡化了它,並將它留在那裏。 – strangerpixel 2009-09-22 14:18:46