2017-05-26 89 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