ある場所から別の場所にdivコンテンツをコピーしようとしています。これには、次のようなものを使用しています。
$('#newDiv').html($('#oldDiv').html());
問題は、一部の子要素に、bind()jqueryメソッドを使用してアタッチされたイベントがあることです。それらのイベントも新しい場所にコピーしたいと思います。
この「イベントコピー」を行う方法について何かアイデアはありますか?
ある場所から別の場所にdivコンテンツをコピーしようとしています。これには、次のようなものを使用しています。
$('#newDiv').html($('#oldDiv').html());
問題は、一部の子要素に、bind()jqueryメソッドを使用してアタッチされたイベントがあることです。それらのイベントも新しい場所にコピーしたいと思います。
この「イベントコピー」を行う方法について何かアイデアはありますか?
コンテンツをコピーした瞬間に動的コンテンツを作成します。
イベントを動的に作成されたhtmlにバインドするには、jQuery.live()
またはメソッドが必要です。delegate()
使用しているjQueryのバージョンに応じて選択し.live()
ます。delegate()
.live()jQuery1.3以降で使用可能です。現在および将来、現在のセレクターに一致するすべての要素にイベントハンドラーをアタッチします。
.delegate()jQuery1.4.2以降で使用可能です。ルート要素の特定のセットに基づいて、現在または将来、セレクターに一致するすべての要素の1つ以上のイベントにハンドラーをアタッチします。
私のサンプルとこのjsFiddleデモンストレーションをチェックしてください
<div id="newDiv"></div>
<div id="oldDiv"><a>click me</a></div>
$("a").live("click",function() {
alert("click");
});
// copy content
$('#newDiv').html($('#oldDiv').html());
</ p>
jquery Cloneメソッドを使用する場合は、イベントを保持するかどうかを指定するパラメーターを設定できます...チェックアウト:http ://api.jquery.com/clone/
それはうまくいくはずです。