jQuery - 使.one运行在类的任何一个元素上,而不是在每个元素上运行一次?

时间:2013-04-11 13:09:16

标签: jquery class

我尝试让弹出窗口出现一次,当用户将鼠标悬停在任意一个图片库(class="notice")上时触发。我尝试了.one(),这很有帮助,但是现在消息对于图库中的每个图像都会出现一次。我希望它只对所有图像出现一次,无论用户首先悬停在哪一个上。

我尝试过的事情:

  • *.first.get(index),但这些方法要求您只指定一张图片,我希望任何图片都可以使用
  • .removeClass('.notice')mouseleave上,但是jQuery正在查看旧的DOM,因此无效。

这是我的代码:

$(document).ready(function(){
    $('.notice').one('mouseenter', function() {
        $('.popup').fadeIn(1000); 
        $(this).addClass('faded');
    })
    .one('mouseleave', function() {
        $('.popup').fadeOut(1000); 
        $(this).removeClass('faded'); 
    });
});

1 个答案:

答案 0 :(得分:1)

你可以自己解开它:

var $notice = $('.notice');

$notice.on('mouseenter', function() {
    $('.popup').fadeIn(1000); 
    $(this).addClass('faded');

    $notice.off('mouseenter');
})