標題の通り、insertAfterしたDOMを元の場所に戻す良い方法はありますか?
サンプルコード
jQuery
1 <section> 2 <div class="koko"> 3 <p>この下に移動してくる</p> 4 </div> 5 <div class="moveParent"> 6 <ul class="move"> 7 <li>移動したい(元に戻したい)</li> 8 <li>移動したい(元に戻したい)</li> 9 </ul> 10 </div> 11 </section> 12 13 <script> 14 $(function() { 15 var winWidth = $(window).outerWidth(); 16 var navUA= navigator.userAgent; 17 // 画面幅が639px以下、または UAがiPhone 又は Androidスマートフォンの時 18 if (winWidth <= 639 || navUA.indexOf('iPhone') > 0 || navUA.indexOf('Android') > 0 && navUA.indexOf('Mobile') > 0) { 19 $('.move').insertAfter('.koko p'); 20 } else { 21 $('.moveParent').insertAfter('.koko'); 22 } 23});
わからないこと
①現状のコードでも、元の場所に移動できますが
本来やりたいコードはもっと複雑なため
イメージとしては....
「移動 → 移動」ではなく「移動 → 復元」のようにできないかなと思っています。
②また、現状「.moveParent」を残していますが
できればSPの時(子要素がない時)はremoveしたいと思っています。
元の位置に移動する際に.wrapなどで処理すればいいかなと思っていますが
これも良い案があれば教えていただきたいです。
前提として、PCSP同じDOM構造で再現できないデザイン要件は避けるべきだとは
存じておりますが、またPCとSPでDOM自体を分けるなども検討しましたが
運用上こちらの方が手間が少なそうなため教えていただきたいです。