私はこのマークアップを持っています:
<span class="click">click</span>
<div><span>first child</span>, <span>second child</span>, <span>third child</span></div>
「.click」(「ターゲット」と呼びましょう)をクリックした後
、次のようにします。1.次のdivの最初の子に「done」htmlを追加します。
$('.click').click(function (e) {
$(this).next('div').children('span').first().html(function () {
return $(this).html() + ' done';
});
});
});
2.前の関数が完了した後でのみ、ターゲットの次のdivの3番目の子に「done」htmlを追加します。
3.前の機能が完了した後でのみalert ("third child done. coming to second...")
;
4.前の関数が完了した後でのみ、ターゲットの次のdivの2番目の子に「処理する最後の要素になる」htmlを追加します。
5.最後に、前の機能が完了した後でのみ、alert ('the job is done')
;
6.これらの関数は、複数のsetTimeoutが含まれる場合でも、完了するまでに長い時間がかかる可能性があるため、ロジック全体が完了するまで、「。click」に関連するすべてのイベントを無効にする必要があります(この特定の場合は、後で有効になることを意味します)alert ('the job is done')
)。
たぶん$.Deferredsを使用しますか?または、ある種のコールバックを作成しますか?..