2009-10-01 95 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(); 
});