2016-06-01 7 views
0

私は、複数の可能な/正しい答えをユーザに提示します。彼らが選択した回答を提出した後、私は彼らに正しい回答を表示する必要があります。これを行うために、私は2つの異なるクラスを順番にとマークしますが、クラストグリングを同時ににする必要があります。 トウの差分クラスを同時に切り替える

ロジック:

  1. 答え、彼らが選ばれたと.answer-correct-selected
  2. で、彼らが選ん持っていなかった答えをマークされている正しかったが、実際には正しいがでマークされていたしました - .answer-correct

コードは次のとおりです。

$correctSelectedAnswers = $('Select the correct selected answers..'); 
$correctUnSelectedAnswers = $('Select the correct unselected answers..'); 

// I want these to run simultaneously 
$correctSelectedAnswers.toggleClass('answer-correct', 500); 
$correctUnSelectedAnswers.toggleClass('answer-correct-selected', 500); 

上記のコードの下の2行をどうすればと同時にを実行できますか?

+0

両方のクラスを同時に適用する必要がある理由はありますか?これらのクラスに結び付けられたCSSからの視覚的レンダリングに関連していますか? JavaScriptはシングルスレッドであり、同時に起こることは簡単ではありません。 – jstlaurent

+0

@jstlaurentすべてがうまくいきますが、同時に起こることがベストプラクティスであると想像しています。私は間違っていますか? –

+1

私は正直なところ、要素クラスへの更新の同期を試みることを心配しませんでした。あなたのJSは単一のスレッドで実行されています。**あなたが行った変更やブラウザーがそれらを処理する順序でブラウザーが実際にDOMを更新するとき**は**制御できません。ほとんどの場合、これらの変更はJSの実行が終了したときにのみ適用されるため、違いはありません。 – jstlaurent

答えて

1

webworkersを複数のコアにタップして、ある程度の並列性を達成することができますが、JavaScriptは単なるスレッドであると考えてください。この場合、webworkersは、メインスレッド外のDOMと対話できないため、オプションでもありません。

質問に答えるには、同時に何かを実行しないでください。影響を受ける要素が何百万もないと仮定すると、そこにある2つの呼び出しは、ユーザーに対して「同時」であるように見えます。

この質問の範囲ではありませんが、jQueryのtoggleClassを使用すると、コードに多少の曖昧さが生じる可能性があります。値「500」は第2パラメータとしてはあまり意味がありません。

+0

答えをありがとう。 "500"パラメータの時点で、JQuery-UIを使用しています。これは、バニラJQueryの標準の 'toggleClass'を変更します。 –

+0

@AlexanderLomia =それを説明するO!そして問題はない。 –

関連する問題