2017-05-26 20 views
1

時間に基づいてdivをクラスに追加および削除したいと考えています。 6秒後にクラスを追加し、4秒後にクラスを削除する必要があります。私は基本的な実装を試みました。 thisはなぜ機能しないのですか?私は問題がこのように2つのsetTimeoutsであると仮定します。私が2行目をコメントアウトすると、最初の行がコメントアウトされます。ここで何が起きてるの?
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'として呼び出され、 'setTimeout(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

なぜこの回答は下降していますか?この回答は、私が必要としているように、両方の機能を一つにまとめることを試みました。 –

+0

@anoopchandranおそらく最初のバージョンがjqueryを使用していなかったからです。私は後でそれを追加しました。 – Robert

関連する問題