jquery mouseleave проблема при движении слишком медленно - PullRequest
2 голосов
/ 21 декабря 2010

Я использую события jQuery mouseenter и mouseleave для перемещения div вверх и вниз.

Все работает хорошо, за исключением mouseleave, который не срабатывает ТОЛЬКО, если мышь перемещена из divдовольно медленноЕсли я двигаю мышь с относительно нормальной или быстрой скоростью, она работает, как и ожидалось.

Может кто-нибудь объяснить это или предоставить какую-либо информацию о том, как обойти это?

$(document).ready(function() {
    $('header').mouseenter(function() {
        $(this).stop().animate({'top' : '25px'}, 500, function() {
            $(this).delay(600).animate({'top' : '-50px'}, 500);
        });
    }).mouseleave(function(e) {
        var position = $(this).position();
        if (e.pageY > position.top + $(this).height()) {
            $(this).stop().delay(600).animate({'top' : '-75px'}, 500) ;
        }
    });
});

1 Ответ

0 голосов
/ 21 декабря 2010

Попробуйте использовать hover вместо mouseenter и mouseleave;

$(document).ready(function() {
    $("#div").hover(function() {
         $("#something").slideDown(400);
    }, function() {
         $("#something").slideUp(400);
    });
});
...