回答編集履歴

1 プログラムの間違いの修正

hoge1e3

hoge1e3 score 19

2016/08/25 16:41  投稿

```JavaScript
// (-)buttonがクリックされた時の処理
$(document).on('click', '.del', function(){
   var removeObj = $(this).parent();
   removeObj.fadeOut('fast', function() {
       removeObj.remove();
       console.log('#1');
       // 中略
       });  
   });
   // option再生成
   console.log('#2');
   generateOptions();
   console.log('#3');
});
```
fadeOutメソッドは
「今からフェードアウトを始めてください。終わったら2番めの引数に指定した関数(ここに"#1"の表示が含まれている)を呼んでください」
というお願いをするだけの命令で、すぐさま(フェードアウトの完了を待たずに)次の処理、すなわち#2と#3の表示へと処理が移っていきます。
その後、フェードアウトが完了した時点で"#1" の表示がされるので、結果として
"#2" -> "#3" -> "#1"
の順に表示されます

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る