質問: "block"){//アコーディオンが開いていたら $(this).find(".js-acrTitle").addClass("op"); //開閉アイコンの状態を設定 } } else { //PCの時 //強制的にパネルを開く $(this).find(".js-acrBody").show(); $(this).find(".js-acrTitle").removeClass("op"); } }); } ``` ### 試したこと 最初はどういう状態だとうまく表示されないのか分からなかったので、エラーが再現されるタイミングを特定するためにコンソールの状態を確かめながらいろいろ試しました。 ・初期表示の状態で開閉 →問題なし ・アコーディオンを開いた状態でリサイズ後、開閉 →問題なし ・アコーディオンを閉じた状態でリサイズ後、開閉 →エラーでslickが正しく表示されない ・おかしくなった状態で再読み込みした後、開閉 →問題なし というところまでは突き止めました。 リサイズ後、アコーディオンを開こうとすると、 `Uncaught TypeError: Cannot read property 'removeClass' of null` というエラーが出て、slickのリフレッシュをしている箇所のコードがコケるようです。 `if($eventTarget.next().has(".jy-calendar")){...}`のif文を取ってみても変わりません。 カレンダー入りのアコーディオンはページ内に複数ありますが、1つにしてみても変化なしです。 ここからどうやってバグの原因を突き止めたら良いのか分からず、完全に行き詰まってしまいました。。。 どこかロジックがおかしいところや、エラーの原因になりそうなところが無いか、どなたかお助けいただけますと助かります。。。m(_ _)m ### 補足情報 MacのChromeとFirefoxでは確認していますがどちらも同じです。 その他不足情報等ありましたらご連絡ください。
回答: `initCalendar()` で `$(this).slick();` / `$(this).unslick();` をしていますが、そのたびに同じ要素に `.slick()` を実行していることになるのでは。 load時に1回 `.slick()` して、それを変数に保存し、`hoge.slick('setPosition');` とすればリロードできませんか? 【slick.jsを利用していて、初期状態をdisplay:none;にしたらレイアウト崩れる | SSSSSN】 関連するライブラリや全て提示してもらって、動作が再現できればもう少し回答の精度が上げれると思います。