我有以下代码:
$('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淡出,静默移动,然后淡入为无缝效果。
然而,当运行它时,每次移动鼠标时,都会运行上述所有操作。它提出了一个问题,因为这不是我想要发生的事情(我希望它发生一次,就是这样)而且我猜它会减慢浏览器的速度,可能会导致堆叠。
我想我已经读过某个地方如何在执行一次后停止执行某些事情,但我记不住了,所以有没有办法做到这一点?感谢。
答案 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);
});
答案 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);
});