延迟删除Jquery中的类

可能重复:
Jquery延迟执行脚本

我正在编写一个小脚本,当页面加载时,将CSS子类分配给三个元素。 800ms之后,我希望它删除该子类。

我以为这段代码可能会这样做:

 $(document).ready(function () { $("#rowone.one").addClass("pageLoad"); $("#rowtwo.three").addClass("pageLoad"); $("#rowthree.two").addClass("pageLoad"); .delay(800); $("#rowone.one").removeClass("pageLoad"); $("#rowtwo.three").removeClass("pageLoad"); $("#rowthree.two").removeClass("pageLoad"); })  

可悲的是,它没有,任何帮助将不胜感激。 提前致谢。

您可以使用setTimeout()函数:

在指定的延迟后调用函数或执行代码片段。

 $(document).ready(function () { var $rows = $("#rowone.one, #rowtwo.three, #rowthree.two").addClass("pageLoad"); setTimeout(function() { $rows.removeClass("pageLoad"); }, 800); }); 

试试这个:我也不确定为什么上面没有使用链式表达的人可能会错过一些东西

.delay()仅用于处理动画。 您将不得不使用常规的setTimeouts来处理您正在做的事情:

希望它符合你的需要:)

  $("#rowone.one, #rowtwo.three, #rowthree.two").addClass("pageLoad"); setTimeout(function () { $("#rowone.one, #rowtwo.three, #rowthree.two").removeClass("pageLoad"); }, 800); 

为此使用setTimeout

 setTimeout(function() { $("#rowone.one").removeClass("pageLoad"); $("#rowtwo.three").removeClass("pageLoad"); $("#rowthree.two").removeClass("pageLoad"); }, 800); 

将其包装在函数中并传递状态,如下所示:

 $(document).ready(function () { doClasses('add'); setTimeout(function() { doClasses('remove'); }, 800) function doClasses(state) { $("#rowone.one, #rowtwo.three, #rowthree.two")[state+'Class']("pageLoad"); } }); 

小提琴

现在它很容易调用,更容易放入timeOut,而且你不会重复代码。

我删除了: .one .three . two .one .three . two类选择器并添加了超时function。 应该管用。

      
rowone
rowtwo
rowthree