2010-09-01 44 views
0

如果菜單已經打開,我不確定爲什麼我的代碼會觸發fadeOut()效果?請參見下面的代碼:如果菜單已經打開,如何使用Jquery停止fadeout的觸發?

$('.rtmenu').click(function(e) { e.stopPropagation(); }); 

$('.rtmenu').mouseout(function(){ 
    $(document).one('click',function() { $('.rtmenu').fadeOut(200); }); 
}) 

任何幫助,將不勝感激

回答

0

你的代碼應該工作提供它位於document.ready內,沒有被動態創建的.rtmenu元素。 You can test it here

如果他們動態創建,使用.live()處理器和.stopImmediatePropagation()它改變了一下,像這樣:

$('.rtmenu').live('click', function(e) { e.stopImmediatePropagation(); }); 
$(document).click(function() { $('.rtmenu').fadeOut(200); });​ 

You can give it a try here

+0

@Nick,感謝您的幫助,雖然你的代碼,使菜單只是fadeOut一旦點擊...是否有一種方式,只有在DIV('。rtmenu')顯示時發生這種情況?謝謝 – Nasir 2010-09-01 12:36:09

+0

@Nasir - 只有可見的東西纔會淡出,否則就會忽略它......你能解釋一下嗎?我不太關注,發佈的代碼應該只顯示「.rtmenu」,如果顯示的話......行爲有什麼不同?這將幫助我看到你想要更好一點。 – 2010-09-01 12:40:54

+0

@Nick - 我的重要代碼只在第一次點擊&DIV(.rtmenu)時淡出。之後,如果我點擊主菜單鏈接來顯示DIV(.rtmenu),它(.rtmenu)就會立即消失。我認爲這與$(document).one(... part)有關係,我需要fadeout纔會發生,如果DIV(.rtmenu)可見。我希望這有意義嗎? – Nasir 2010-09-01 12:55:12

相關問題