2016-03-30 16 views
0

Aşağıdaki kod çalışıyor, ancak alt menüleri yukarı kaydırmak isterim: alt öğenin yukarı kaydırmak yerine, alt menüleri fareyi kaydırmak istiyorum her alt menüdejquery slideUp fare dışarı zaman

function initMenu() { 
    $('#menu ul, #top-menu ul').hide(); 
    $('#menu ul, #top-menu ul').children('.current').parent().show(); 
    $('#menu li a,#top-menu li a').click(
    function() { 
    var checkElement = $(this).next(); 
    if((checkElement.is('ul')) && (!checkElement.is(':visible'))) { 
     checkElement.slideDown('normal'); 
     return false; 
    } 
    if((checkElement.is('ul')) && (checkElement.is(':visible'))) { 
     checkElement.slideUp('normal'); 
     return false; 
    } 
    } 
); 
+0

http://stackoverflow.com/a/36305541/4763793: eleman görünür olup olmadığını kontrol etmek bu şekilde gerekmez –

cevap

0

Kullanım hover yöntem tüm unsurların dışında.

$('#menu li a,#top-menu li a').hover(function(){ 
    $(this).next().slideDown('normal'); //on mouse over 
}, function(){ 
    $(this).next().slideUp('normal'); //on mouse out 
}); 
+0

Teşekkürler. Bu da iyi çalışıyor ve çok daha temiz bir çözüm. Sorun, alt öğenin alt öğelerin gezinirken görünür kalması gerektiğidir. Böylelikle, çocuk elemanlarının üzerine geldiğinde kayar ve bu benim ana sorunumdur. – Marsupio

+0

Başka bir soru sormanız veya cevabı alacağınız ilgili bir soruyu araştırmanız gerekiyor. –

+0

Ayrıca birisi için cevap verdim. Ama meşgulüm, bu sefer doğru yazamam. –

0
$('#menu li a,#top-menu li a').mouseover(function(){ 
    $(this).next().slideDown('normal'); 
}).mouseout(function(){ 
    $(this).next().slideUp('normal'); 
}); 

mouseover

mouseout