Использование jquery hover - PullRequest
2 голосов
/ 13 мая 2011

У меня есть событие jquery hover, которое срабатывает при наведении курсора на элемент.Проблема в том, что если вы наводите элемент на элемент несколько раз, он ставит в очередь событие, иногда оставляя элемент мигающим хорошо, минуты, в зависимости от того, как быстро и как долго вы наводите курсор на элемент.Я хочу остановить распространение события, чтобы исключить эту очередь.

$('.pui-search-item').hover( function() {
        $(this).find('.pui-actions').show('fade');
    }, function(){
        $(this).find('.pui-actions').hide('fade');

    });

Как бы я это сделал, я пробовал различные функции распространения без эффекта.

Спасибо завперед.

Ответы [ 3 ]

7 голосов
/ 13 мая 2011

Попробуйте это:

$('.pui-search-item').hover( function() {
        $(this).find('.pui-actions').stop(true, true).show('fade');
    }, function(){
        $(this).find('.pui-actions').stop(true, true).hide('fade');

    });

Подробнее о stop () http://api.jquery.com/stop/

3 голосов
/ 13 мая 2011

Добавьте вызов функции stop(true) перед анимацией, чтобы сбросить очередь.

1 голос
/ 13 мая 2011

Попробуйте эту ссылку.

Ваша реализация должна измениться на:

$('.pui-search-item').hover(function() {
  $(this).find('.pui-actions').stop(true, true).fadeOut();
}, function() {
  $(this).find('.pui-actions').stop(true, true).fadeIn();
});
...