質問: 768; // アコーディオン操作 $(midasi).on('click', function(e){ if($(this).hasClass('active')) { $(this).next(mokuzi).slideUp(); $(this).removeClass('active'); } else { $(this).next(mokuzi).slideDown(); $(this).addClass('active'); } }); $(window).load(function(){ function moveMainnav() { if(window.innerWidth < switchPoint){ $(mokuzi).hide(); $(midasi).removeClass('active'); } else { $(mokuzi).show(); $(midasi).addClass('active'); } } // Windowリサイズでアコーディオンの開閉 $(window).on('resize', function(){ moveMainnav(); } ); moveMainnav(); }); } ); というコードに変更したのですが、同じ挙動になります。 動作を見る限り、タッチしたh2タグがずっとフォーカスされ続けられているような状態であり、ページ中のどの場所をタッチしても、このh2タグをタッチしたものと認識され、アコーディオンが閉じられているような状態です。 ### 補足情報(言語/FW/ツール等のバージョンなど) 最新のjQuery v2.2.3を使っています。
回答: ``` $(window).on('resize', function(){ moveMainnav(); } ); ``` ここが原因と思われます。 Androidの方はちょっと記憶が定かではありませんが、 iOSだとスクロールでSafariのナビゲーションエリアが開閉した時にresizeイベントが発生してしまうので、 スクロール時にアコーディオンが閉じてしまうのはそのためだと考えられます。 スマホではリサイズイベントの時にmoveMainnav()が実行されないように分岐するのが 手っ取り早いのではないかと思います。