0

これは本当に肥大化しているように見えますが、より良い/よりコンパクトに書き直すことができますか?

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

ありがとう!

4

2 に答える 2

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

于 2009-10-01T14:18:25.773 に答える
1

要するに、違います。ただし、空のホバー関数がなくても実行できます 。mouseenter()とを使用するだけmouseleave()です。mouseovermouseoutに微妙な違いがmouseenterありmouseleaveます。詳細については、jQueryAPIを参照してください。

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

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

$('.flycart a.close').click(function()
{
    $(this).parents('.flycart').hide();
});
于 2009-10-01T14:21:57.220 に答える