我可以在addClass方法之前添加延迟吗?
这似乎对我不起作用。
$("#btn").click(function doStuff(){
$("#myoBj").show();
$("#myoBj").animate({left: "15"});
$(".secondObj").delay(1000).addClass('glow');
$(".thirdObj").addClass('topGlow');
)};
由于
答案 0 :(得分:3)
.delay()
方法最适合在排队的jQuery之间延迟 效果。因为它是有限的 - 例如,它并没有提供一种方法 取消延迟 -.delay()
不能替代JavaScript的原生代码setTimeout
功能,可能更适合某些用途 例。
因此,.delay()
不能代替JavaScript的setTimeout()
。
$("#btn").click(function doStuff(){
$("#myoBj").show();
$("#myoBj").animate({left: "15"});
setTimeout(function(){ $(".secondObj").addClass('glow'); }, 1000);
$(".thirdObj").addClass('topGlow');
)};
答案 1 :(得分:1)
是的,但没有使用jQuery delay
函数,因为动作需要在动画队列上(或“动画队列,如果你定义一个动画队列”)才能工作;改为使用setTimeout
:
setTimeout(function() { /* */ }, timeout);
答案 2 :(得分:1)
$("#btn").click(function doStuff(){
$("#myoBj").show();
$("#myoBj").animate({left: "15"});
setTimeout(function () {
// Wait 1 second and add the class
$(".secondObj").addClass('glow');
}, 1000);
$(".thirdObj").addClass('topGlow');
});
答案 3 :(得分:0)
您可以使用queue()方法的回调在延迟完成后触发代码。
$("#btn").click(function doStuff(){
$("#myoBj").show();
$("#myoBj").animate({left: "15"});
$(".secondObj").delay(1000).queue(function() {
$(this).addClass('glow');
});
$(".thirdObj").addClass('topGlow');
)};