###実現したいこと
2つあります。
➀クリックして要素のfadeOutが完了した後に、bodyの色を変化させる。
➁それが終わったら要素をfadeInする。
このうち、➀はできましたが➁ができない状態です。
サンプルあります????https://jsfiddle.net/z7nae31g/
###発生している問題
下記jqueryの➁で、fadeInしてくれないのが問題です。
html
1<p>クリックしたら要素がfadeOutし、bodyの色が変わる。しかしその後fadeInしない。</p> 2 3<section> 4 5 <div> 6 <button type="button" data-number="1">クリック1</button> 7 <div class="target1">target1</div> 8 </div> 9 10 <div> 11 <button type="button" data-number="2">クリック2</button> 12 <div class="target2">target2</div> 13 </div> 14 15</section>
jquery
1$(document).on('click','button', function(){ 2 3 const number = $(this).attr('data-number'); 4 5 $.Deferred().resolve() 6 7 .then(function(){ 8 9 let element,color; 10 if( number=='1' ) { element=$('.target1'); color='lightgreen' } 11 if( number=='2' ) { element=$('.target2'); color='dodgerblue' } 12 13 // ➀クリックして要素のfadeOutが完了した後に、bodyの色を変化させる。 14 element.fadeOut().queue(function() { 15 $('body').css('background',color); 16 }); 17 18 }) 19 20 .then(function() { 21 22 // ➁それが終わったら要素をfadeInする。 23 $('.target1').fadeIn(); 24 $('.target2').fadeIn(); 25 26 }); 27 28}); 29
どうしたらfadeInさせることができますでしょうか?
###補足
ちなみになんですが、 $.Deferred() は意図して使っているので、その構造は変えずにできればと思っています。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/23 09:08
2019/06/23 09:22
2019/06/23 09:28