2

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

我尝试过的事情:

  • *.first.get(index),但是这些方法要求您只指定一个图像,我希望任何图像都可以工作
  • .removeClass('.notice')on 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'); 
    });
});
4

1 回答 1

1

你可以自己解绑:

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

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

    $notice.off('mouseenter');
})
于 2013-04-11T13:11:33.297 回答