Простое меню JQuery Hover - PullRequest
       18

Простое меню JQuery Hover

0 голосов
/ 01 октября 2009

Это выглядит действительно раздутым, можно ли его переписать лучше / компактнее:

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

Спасибо! * * 1004

Ответы [ 2 ]

2 голосов
/ 01 октября 2009
$("#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 s.

1 голос
/ 01 октября 2009

Короче, нет. Однако вы можете обойтись без пустой функции наведения: просто используйте mouseenter() и mouseleave(). mouseover и mouseout имеют незначительные отличия от mouseenter и mouseleave. Посмотрите API jQuery для получения дополнительной информации.

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

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

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