私はサイトに画像を追加する機能を使用しています。これらは、.html()を使用してDIVに入ります。 これを実行すると、ホバーに影響を与えるために同じ画像が必要になりますが、マウスを置くと何も起こりません。 .html()関数で使用しているのと同じコードを入力すると、同じクラスなどがホバーになります。JQueryの動的タグはどのように再利用できますか?
多くの試みの後、私はこのサンプルに私の問題を絞りました。 問題は、コンテナDIVが.html()...によって追加されたコードをどのように公開するのか、私のホバー機能は動的に追加されたタグを見つけることができないということです。
<html>
<head>
<title>Problems</title>
<script type ="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<p id="TXToldone">This line was already here</p>
<div id="DIVnewone"></div>
<script>
function createnewone(){
$txthtml="<p id=\"TXTnewone\">And this one got added dynamically</p>";
$("#DIVnewone").html($txthtml);
};
$(document).ready(function() {
createnewone();
});
$("*").on("click", function(){
alert($(this).attr("id"));
});
</script>
</body>
</html>
注:
は、ここに私のサンプルコードです - これが私の本当の問題の単なる生の一例です。これは私が実際に達成しようとしているのではない は実際のものを解決する;
- 実際のコードからのものである...文書の後にある。準備完了画像を再帰的に追加してください 各DIV ...
- 3番目の関数はちょうどあなたの人が私の問題を見ることができます...それはあなたがクリックした要素のIDで警告を表示する必要があります が第1段落の場合は...)ただし、 をクリックすると、その段落のIDは表示されませんが、コンテナーDIVのIDは と表示されます。
- (はい、それはまた、文書まで、他の親のための警告を与える ちょっと、それは単なる例です)
- 私は手動で同じDIVに段落を追加する場合は、「静的」 段落ショーIDをクリックするとそのIDが表示されますが、「動的」のIDはまだ に表示されます。
お願いします。
私のポイントが明確になるよう
EDIT(また、私はそれがすべての写真を「見る」ことができるように、私のコードの下に滞在するスクリプトが必要):私はそうDIVにコンテンツを追加する方法が必要です他の関数は新しいコードを参照します。
サンプルコードが意図したとおりに動作するように、この行をどのように置き換えますか?
$("#DIVnewone").html($txthtml);
主なポイントは、イベント( 'on()')を添付すると、その要素はまだDOMにありません。イベントはそれに付随しないでしょう。追加された要素にイベントを再度アタッチするか、イベント委譲( 'delegate'または' 'on()']を使用する必要があります(http://api.jquery.com/on/#direct-and-delegated-イベント)を新しいjQueryで、または 'live'を非推奨としています)。 – kapa