javascript / jquery - 仅当鼠标悬停侦听器不活动时如何执行函数

时间:2011-12-05 20:52:08

标签: javascript jquery javascript-events event-handling listeners

为了避免由于我的页面上的翻转效应而在屏幕上出现一种闪烁效果,我想只在当前没有发生不同缩略图上的mouseOver状态时才从thumbnail的mouseOut激活一个功能。我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以检查是否有任何缩略图元素在成功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类,例如,如果需要动画,则可以在该动画的回调中删除此类。

以上是上述解决方案的一个方面:http://jsfiddle.net/jasper/zg5g7/