2012-02-16 29 views
2

我有一個下拉菜單與數量的表單選擇選項。下拉菜單和Jquery懸停一起工作。因此,在菜單圖標懸停時,會顯示下拉菜單,當您離開時,它會隱藏。每次嘗試更改選擇選項時,它都會顯示剩餘的數量。但是,當我將鼠標懸停在不同的選項上或關閉第一個選擇選項時,將隱藏整個下拉菜單。jquery問題與表單選擇下拉隱藏

$("#navigation #seven").live({ 
    mouseenter:function(){ 
     $(this).find('ul').show(); 
    }, 
    mouseleave:function() { 
     $(this).find('ul').hide(); 
    } 
}); 
+0

你能發表一些細節,以便我們能夠確定哪些方面出了問題嗎? – 2012-02-16 01:07:02

回答

1

我建議在懸停關閉設置超時,比如說幾百毫秒。在你的菜單中,當你懸停時將標誌設置爲真,當你懸停時設置爲false。所以,如果您的菜單圖標懸停,將該標誌視爲真,它不會隱藏下拉菜單。

例子:

var overMenu = false; 
$(menuItem).hover(
    function() { 
     $(dropDownMenu).show(); 
    }, 
    function() { 
     setTimeout(function() { 
      if (!overMenu) 
       $(dropDownMenu).hide(); 
     }, 200); 
    } 
); 
$(dropDownMenu).hover(
    function() { overMenu = true; }, 
    function() { 
     overMenu = false; 
     $(this).hide(); 
    } 
}; 
+0

這是我的代碼。我嘗試了你所擁有的東西,但它不起作用。在Firefox中引發錯誤。 – user1211872 2012-02-16 20:29:41

2

出現這種情況,因爲你mouseouting的菜單項,當你試圖去選擇。

必須圍繞菜單項和容器的選擇和股利適用懸停

​​

然後,應用懸停到div

$('#hoverable').hover(function(){ 
    $(this).find('select').show(); 
}, function(){ 
    $(this).find('select').hide(); 
}); 
+0

這就是它目前正在建立的方式。 – user1211872 2012-02-16 20:28:46

0

明白了!

var hover_off = false; 
var hover_count = 1000; 

$("#navigation #seven").live("mouseover",function(){ 
    hover_off = false; 
    $(this).find('ul').show(); 
}); 

$("#navigation #seven").live("mouseout",function(){ 
    hover_off = true; 
    setTimeout(myMouseOut, hover_count); 
}); 

function myMouseOut() { 
    if (hover_off) { 
     $("#navigation #seven").find('ul').hide(); 
    } 
} 
相關問題