編集:質問は、大規模な CSS 変更を 700 以上の div に最適化する方法に変わりました。私の元のアプローチを説明するために、古い質問を以下に残します。
次の jQuery がありますが、期待どおりに動作しません。クラス gr には約 700 の div があるため、それらを非表示にするにはかなりの時間がかかります。私はやろうとしています:
- 「発音の表示/非表示」をクリックすると、すぐにそのテキストを「Working」に変更します
- すべての「div.gr」が非表示/表示されるまで待ちます
「ワーキング」は「発音の表示/非表示」に戻ります
$(document).ready(function () { $('#togglePron').click(function() { $('#togglePron').html("Working..."); $('div.gr').toggle(); $('#togglePron').html("Show/hide Pronunciation"); }); }); ... ... <div class="pronlink" id="togglePron">Show/hide P</div> <div class="gr">hai</div><div class="zi">A</div> <div class="gr">nao</div><div class="zi">B</div> etc.
Mike Lentiniのおかげで、この質問には jsfiddle があります。
私が観察した動作は、「P の表示/非表示」が変更されるのにかなりの時間がかかり、その後「作業中」に短時間変更され、「表示/非表示」に戻ることです。jQuery は最初に html() を実行するのではなく、html() と .toggle() の両方を束ねているのでしょうか?
Operaでは私が望むことを行うので、これはブラウザ固有のようです。IE 7 と Chrome 18 では、動作は説明したとおりです。Chrome で必要な動作を実現する方法はありますか? または、私が説明していることを行うより良い方法はありますか?