2013-05-10 175 views
1

我有一個下拉菜單,點擊激活 - 沒有問題。 當你mouseout關閉 - 沒有問題。 我也希望它在您點擊菜單項時關閉 - 問題。jquery - 既鼠標和點擊?

當您點擊關閉時,它會關閉,但只要您移動鼠標,它就會重新切換隱藏的類,大概會與鼠標指針發生衝突。

我對jquery很新,請您清楚解釋。

「視覺隱藏」類僅僅是可見性:隱藏。

$body.on('click', 'a.user', function(e){ 
     $('ul.user-links').toggleClass('visuallyhidden'); 
    }); 

    $body.on('click', 'ul.user-links', function(e){ 
     $('.user-links').toggleClass('visuallyhidden'); 
    }); 

    $body.on('mouseout', 'ul.user-links', function(e) { 
     if($(e.toElement).parents('ul.user-links').length < 1) { 
     $('ul.user-links').toggleClass('visuallyhidden'); 
     } 
    }); 
+0

你可以做小提琴嗎? – 2013-05-10 10:16:09

回答

0

呃,我猜這個問題是由於您使用的是toggleClass();當你click的菜單語音,它實際上toggleClass(),但當你mouseout()toggleClass()再次。嘗試在mouseout將控制

if($('ul.userl-links').hasClass('visuallyhidden')){ 
.. 
} 
else { } 

使用addClass()removeClass(),而不是toggleClass() 一樣,如果你做一個小提琴,我將修改的問題來回答更好。

+1

非常完美!感謝您的快速幫助。 – Jake 2013-05-10 10:26:53