延迟删除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