1

我有以下代码:

$('body').mousemove(function() {
    $('#covering').fadeOut(500);
    $('.block div div').fadeOut(250)
    $('.block div div').css('margin-top','160px')
    $('.block div div').fadeIn(250);
});

基本上我想要做的是让“覆盖” div 淡出(如在这个问题中)并让一些块元素的内部 div 淡出,静默移动,然后淡入以获得无缝效果。

但是,当它运行时,每次移动鼠标时,都会运行上述所有内容。它提出了一个问题,因为这不是我想要发生的(我希望它发生一次,仅此而已),我猜它会减慢浏览器的速度,可能会导致叠加。

我想我已经在某处读过如何在执行一次后停止执行某事但我不记得了,那么有没有办法做到这一点?谢谢。

4

2 回答 2

9
$('body').one('mousemove', function() {
        $('#covering').fadeOut(500);
        $('.block div div').fadeOut(250)
        $('.block div div').css('margin-top','160px')
        $('.block div div').fadeIn(250);
});

更多信息:http ://docs.jquery.com/Events/one

于 2009-06-28T21:22:46.877 回答
1

尝试One事件。如上所述,它具有以下功能:

将处理程序绑定到一个或多个事件,以便为每个匹配的元素执行一次。

我认为这就是您要查找的内容,这是您在上面使用一个事件时使用的代码示例。

$('body').one("mousemove", function() {
    $('#covering').fadeOut(500);
    $('.block div div').fadeOut(250)
    $('.block div div').css('margin-top','160px')
    $('.block div div').fadeIn(250);
});
于 2009-06-28T21:24:53.363 回答