次のマークアップを含む HTML ドキュメントがあります。
<div id="outside">
<div id="warning">Some warning here</div>
<div id="inside"></div>
</div>
私がやりたいことは、リストされた順序で、前の項目が完了する前に次の項目に進むことなく、次のリストです。
- #outside 要素を非表示にします。
- #inside の内容を「foo」に設定します。
- #outside 要素を表示します。
jQuery を使用すると、次のようなことができます。
$('#outside').hide(function(){
$('#inside').html('bar');
$('#outside').show();
});
このコードは、より多くのイベントにコールバックが含まれているため、より複雑になり、保守が容易ではなくなります。
代わりに、次のようなことをしたいと思います。
$.sequence(
function(){ $('#outside').hide(); },
function(){ $('#inside').html('foo'); },
function(){ $('#outside').show(); }
);
このコードは、プロセスの各ステップを明確に示しており、ネストされた関数コールバックを必要としないため、任意のステップを簡単に挿入/削除できます。
ここに示されている HTML は、私が実際に使用しているものから大幅に単純化されていることに注意してください。また、これらの要素に適用したい一連のアクションはより長くなります。
通常、これは同じ jQuery 要素に対する順次メソッド呼び出しでのみ可能ですが、キューを順番に実行できない別の要素が使用されています。読み取り時にきれいに見え、任意の要素で動作する呼び出しをシーケンスする方法を探しています。