jquery 在事件触发一次后停止触发

krugob8w  于 2022-12-26  发布在  jQuery
关注(0)|答案(2)|浏览(181)

下面的代码:

$('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淡出,无声移动,并淡入无缝效果。
然而,当运行这个程序时,每次移动鼠标,上面所有的程序都会运行。这带来了一个问题,因为这不是我想要发生的(我想要它发生一次,仅此而已),我猜它会降低浏览器的速度,可能会导致堆栈。
我想我在什么地方读到过,一旦某个东西执行了一次,如何阻止它执行,但我不记得了,那么有没有办法做到这一点呢?

ax6ht2ek

ax6ht2ek1#

$('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

y1aodyip

y1aodyip2#

试试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);
});

相关问题