阻止事件触发后触发一次

时间:2009-06-28 21:19:36

标签: javascript jquery javascript-events

我有以下代码:

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

基本上我要做的就是有一个“覆盖”div淡出(如在this question中)并且有一些块元素的内部div淡出,静默移动,然后淡入为无缝效果。

然而,当运行它时,每次移动鼠标时,都会运行上述所有操作。它提出了一个问题,因为这不是我想要发生的事情(我希望它发生一次,就是这样)而且我猜它会减慢浏览器的速度,可能会导致堆叠。

我想我已经读过某个地方如何在执行一次后停止执行某些事情,但我记不住了,所以有没有办法做到这一点?感谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

  

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

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

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