2012-08-05 26 views
11

可能重复:
Jquery delay execution of script延迟去除类jQuery的

我写一个小脚本,在页面加载时,一个CSS子分配给三个要素。 800毫秒后,我想要它删除该子类。

我想这个代码可以做到这一点:

<script type="text/javascript"> 
$(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"); 

}) 
</script> 

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

回答

33

您可以使用setTimeout()功能:

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

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

    setTimeout(function() { 
     $rows.removeClass("pageLoad"); 
    }, 800); 
}); 
2

使用setTimeout这一点。

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

试试这个:还我不知道为什么没有人用链表达上述可能我错过了什么

.delay()仅设计与动画工作。你必须诉诸使用常规的下一个定时器,为你在做什么:

希望它满足您的需要:)

代码

$("#rowone.one, #rowtwo.three, #rowthree.two").addClass("pageLoad"); 

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

1与缩小代码':)'同样如ID是唯一的类名可以被移除。 – undefined 2012-08-05 10:50:36

+0

@Raminson Saweet as bruv! howz生活!我正准备喘口气,希望你踢得很开心!谢谢':)' – 2012-08-05 10:52:30

1

把它包在功能和通过国家,像这样:

$(document).ready(function() { 
    doClasses('add'); 
    setTimeout(function() { doClasses('remove'); }, 800) 

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

FIDDLE

现在很容易打电话,而且更容易放入超时时间,而且不会重复代码。

0

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

<head> 
<style type="text/css"> 
.pageLoad{color:red;} 
</style> 


<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
</head> 



<body> 
<div id="rowone">rowone</div> 
<div id="rowtwo">rowtwo</div> 
<div id="rowthree">rowthree</div> 



<script type="text/javascript"> 
$(document).ready(function() { 


     $("#rowone").addClass("pageLoad"); 
     $("#rowtwo").addClass("pageLoad"); 
     $("#rowthree").addClass("pageLoad"); 




}) 

function removeC(){ 
$("#rowone").removeClass("pageLoad"); 
     $("#rowtwo").removeClass("pageLoad"); 
     $("#rowthree").removeClass("pageLoad"); 
} 

setInterval(removeC, 5000); 


</script> 
</body> 

+1

因为你是新手,所以我不会低调,但其他答案似乎已经涵盖了这个问题。最重要的是,你正在对OP的HTML做出假设。 – PPvG 2012-08-05 11:10:39