質問: こちらの画像ギャラリーとこちらの画像ギャラリーはみためは同じですがコードが少し違います。前者は画像が快適に切り替わります。しかし、後者は次第に重くなっていきついに何の反応もしなくなってしまいます。 この原因を教えていただきたいです。 後者は前者のコードを少し変更したものです。 変更点 * htmlから`modalSentence`クラスのpタグを削除し、そのpタグはJS上で作るようにした * 下のコードを追加 ``` while(modalContainer[0].firstChild) modalContainer[0].removeChild(modalContainer[0].firstChild); ``` * modalAppear関数の中にあるif文を変更 ーー追記ーー 表示環境 CPU:Core(TM) i7-8750H メモリ:32GB(31.8GB使用可能) ブラウザ:Chrome Chromeバージョン:70.0.3538.102(Official Build) (64 ビット) OS:Windows 10 Home
回答: 後者は`modalAppear`関数を再帰していますが、その度に`click`イベントが登録されていくので、`modalAppear`関数の呼び出し回数が2回、4回、8回......と倍々に増えていくと思います。 失礼、再帰と呼ぶべきじゃないですね。`click`イベント内で`modalAppear`関数が呼ばれ、その中でまた自身を呼び出す`click`イベントが登録されているので、倍々に増えていく、というのが正しいかもです。