简单的jQuery悬停菜单

时间:2009-10-01 14:11:13

标签: jquery hover hide slide

这看起来真的很臃肿,可以改写得更好/更紧凑:

$("#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();
    });

谢谢!

2 个答案:

答案 0 :(得分: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 :(得分: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();
});