(jQuery).when()と.done()で順番に処理を実行しよう!
「この処理の次にこの処理したい!」的な悩みをjQueryで解決!
コールバック関数を設定出来ない.ajax()の処理などのときに便利!
1. .when() →一つ以上のオブジェクト(主に Deferred オブジェクト)を受け取り Promise オブジェクトを生成する。返された Promise オブジェクトに 登録したコールバックは、受け取ったオブジェクトの状態に基づいて実行される。
小難しいことを言っているが。。 要は、.when()は先に終わらせたい処理を書く!
var myPromise = $.when( alert(‘部屋の片付け!’); ) ;
2 . .done() → Deferredオブジェクトがresolveの場合に、実行したいコールバック関数を指定する。
超小難しいことを言っているが。。 要は、.done()は後で実行したい処理を書く!
myPromise.done(function () { alert('ケーキを食べる!'); }) ;
3. メゾットチェーンでつなげる!
$.when( $.ajax({ type: 'GET', url: file, dataType: 'html', success: function(data) { $('#directory').html(data); },error:function() { alert('エラーです'); } }) ).done(function() { $('#directory_btn').click(function(){ alert('ボタンが押された'); }); });