javascript / jquery - как выполнить функцию, только если слушатель при наведении курсора не активен - PullRequest
2 голосов
/ 06 декабря 2011

Во избежание какого-либо эффекта мерцания на экране из-за эффектов прокрутки на моей странице, я хочу активировать функцию из mouseOut миниатюры, только если в данный момент состояние mouseOver для другой миниатюры не выполняется.Как бы я это сделал?

1 Ответ

3 голосов
/ 06 декабря 2011

Вы можете проверить, есть ли у каких-либо элементов миниатюр класс active, который добавляется при срабатывании успешного события mouseout. Если у какого-либо другого миниатюрного элемента есть этот класс, тогда ничего не делайте, если ничего не найдено, запустите ваш код mouseout:

$('.thumb-element').on('mouseout', function () {
    if ($('.thumb-element').filter('.active-mouseout').length == 0) {
        //there are no elements with both the `thumb-element` class and the `active-mouseout` class so you can do work here
        $(this).addClass('active-mouseout').animate({top : 'XXpx'}, 250, function () {

            //now we remove the `active-mouseout` class so another `mouseout` event can run
            $(this).removeClass('active-mouseout');
        });
    }
});

Затем вы можете при необходимости удалить класс active-mouseout, например, если для него требуется анимация, вы можете удалить этот класс в обратном вызове для этой анимации.

Вот jsfiddle вышеупомянутого решения: http://jsfiddle.net/jasper/zg5g7/

...