2009-10-01 326 views
0

這看起來確實有些力不從心,可以把它改寫任何更好/更緊湊:簡單的jQuery懸停菜單

$("#cart-summary").hover(
     function() { 
     $('.flycart').slideDown('fast'); 
     } 
    ); 
    $(".flycart").hover(
     function() {}, // mousein function not required 
     function() { // hide menu on mouseout 
     $('.flycart').slideUp('fast'); 
     } 
    ); 
    $('.flycart a.close').click(function(){ 
     $(this).parents('.flycart').hide(); 
    }); 

謝謝!

+0

這不是緊湊嗎? – rahul 2009-10-01 14:14:07

+0

沒有,比較接受的答案。 :-) – 3zzy 2009-10-01 14:53:56

回答

2
$("#cart-summary").mouseenter(function() { 
    $('.flycart').slideDown('fast'); 
}); 

$(".flycart") 
    .mouseleave(function() { 
     $(this).slideUp('fast'); 
    }) 
    .find('a.close') 
     .click(function(){ 
      $(this).parents('.flycart').hide(); 
     }); 

雖然這是一個小改進。我無法猜測#cart-summary.flycart之間的關係。

1

總之,沒有。但是,您可以不使用空懸停功能:只需使用 mouseenter()mouseleave()mouseovermouseoutmouseentermouseleave有細微的差異。查看jQuery API獲取更多信息。

$("#cart-summary").mouseenter(function() 
{ 
    $('.flycart').slideDown('fast'); 
}); 

$(".flycart").mouseleave(function() 
{ 
    $(this).slideUp('fast'); 
}); 

$('.flycart a.close').click(function() 
{ 
    $(this).parents('.flycart').hide(); 
});