私の目的はかなり単純です。私の webapp には 2 つのページがあり、それぞれを別のページから呼び出したいと考えています。
しかし、Javascript で関数呼び出しを実装した方法には欠陥があるようです。closure
、bubbling
、recursion
およびを読みましたが、event.stopPropagation()
これを実装する正しい方法はまだわかりません。
これが私の問題を再現できる最小のコードです。
関数init(){ var $div1 = 'クリックしてページ 2 をロード'; $("#main").append($div1); var $div2 = 'クリックしてページ 1 に戻ります'; $("#main").append($div2); displayFirstPage(); } 関数displayFirstPage() { var $div1 = $("#div1"); var $div2 = $("#div2"); $div2.hide(); $div1.show(); alert("最初に呼び出された"); $div1.click(関数(){ displaySecondPage(); }); } 関数displaySecondPage() { var $div1 = $("#div1"); var $div2 = $("#div2"); alert("2 番目に呼び出された"); $div1.hide(); $div2.show(); $div2.click(関数(){ displayFirstPage(); }); }
div を数回クリックすると、多数のアラートが表示されます。各呼び出しを 1 回実行するだけです。明らかに、関数呼び出しを終了する方法がありません。
どんな助けでも感謝します。