質問: "gallery"){ backToHome(); console.log("backToHome"); return false; } }); } ``` ### 試したこと 何らかの理由で$("#back").click()が2回実行されてifの両方に該当してしまったのだと思い、setTimeoutでtrue,falseで少し待たせてからやってみても、なぜか同じタイミングif内とelse if内のコードが実行されていて意味がありませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) jQuery: jquery-3.1.0.js なぜこうなるのかご存知の方おられましたらご教授ください。宜しくお願いします。
回答: \#backがクリックされるとheaderBackButton()が呼ばれるのだとしたら、クリックするたびに$("#back").click()が実行される。つまり、クリックするたびにaddEventListenerを行っているわけで、イベントリスナーが増つづけます。結果、1回のクリックで$("#back").click()で登録した処理が実行される回数が増えていきます。 書くとしたら、$("#back").click()は無しにするべきだと思います。 ``` function headerBackButton() { if(currentState == "indivisual"){ backToGallery(); console.log("backToGallery"); return false; }else if(currentState == "gallery"){ backToHome(); console.log("backToHome"); return false; } } ```