2017-05-26 56 views
1

我想添加和删除类的时间的基础上一个div。它应该在6秒后添加一个类并在4秒后将其移除。我尝试了一个基本的实现。为什么不是this工作?我认为这个问题是两个setTimeouts一起。如果我在第二行注释掉第一行,这里发生了什么?
使用setTimeout来添加和删除类

setTimeout(addHighlight(), 6000); 
setTimeout(removeHighlight(), 10000); 

有人能告诉我怎样,我可以写一个函数,它既有delay参数的基础上(添加和删除类)?

+0

尝试'的setTimeout(函数(){addHighlight(); setTimeout的(函数(){removeHighlight()},4000)},6000);' – Abhi

回答

5

尝试这种情况:

setTimeout(function() { 
    $('#square').addClass('highlight'); 
}, 6000); 

setTimeout(function() { 
    $('#square').removeClass('highlight'); 
}, 10000); 

https://jsfiddle.net/js6wh78h/8/

+0

为什么我的代码不工作?它基本上是一样的。我定义了'function(){('#square')。addClass('highlight'); (addHighlight(),6000);' –

+0

替换你的setTimeout(addHighlight(),6000); setTimeout(addHighlight,6000);在这两个setTimeout函数 –

+0

我看到我所做的,谢谢你指出。这是一个交易破坏者。 –

-1

这可能是你想要做什么:

setTimeout(function(){ 
 
    $("#test").addClass('on'); 
 
    
 
    setTimeout(function(){ 
 
    $("#test").removeClass('on'); 
 
    }, 4000); 
 
}, 6000);
.on { 
 
    background: lime; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="test">hello world</div>

第一超时6秒后执行,增加了一个类div和启动另一个超时,至极4秒钟后执行并删除该类。

+0

为什么这个答案downvoted?这个答案试图按照我的要求将两个功能组合在一起。 –

+0

@anoopchandran可能是因为第一个版本没有使用jQuery。之后我添加了它。 – Robert