ページに複数のdivがあり、動的にページに追加したり、削除したりすることができます。
ページの読み込み時に、動的に作成されたdivはlocalStorage
、一意のIDとdivに応じた共通のクラスを使用して読み込まれ、それに伴って関数を呼び出しますcontent()
。
関数content()
は次のようになります。
function content(){
alert("test");
$(".two button").click(function(){
var id = $(this).parent().attr("id");
alert(id);
});
}
非常に単純で、関数が呼び出されたときに「テスト」を警告するだけで、をクリック.two
<button>
すると警告が表示され.two
<textarea>
.val()
ます。
これは、divが読み込まれると正常に機能しますが、divのクローンを作成すると問題が発生します。
divのクローンを作成すると、上記のような一意のIDと共通のクラスが提供されます。の最後にcloneDiv()
、を呼び出しますcontent()
。これにより、内部の要素をクリックすると、上記と同じ結果が得られます。
問題は、関数が画面にdivがある回数だけ呼び出されることですが、<button>
divをクリックすると3回.two
アラートが表示されることも意味します。.two
<textarea>
.val()
TLDR; getのボタンをクリックすると.two
、画面上のdivの数だけ呼び出されます。これは、動的divが作成されると関数が呼び出されるためですが、呼び出す必要があるのは1回だけです。
これをすべて行うためのコードはたくさんありますが、何が起こるかをかなり明確に説明したと思います。ただし、それがさらに役立つ場合は、デモを作成します。