- ベストアンサー
ajaxでDOM要素にscriptを適用する方法
- ajaxを使用して追加したHTMLに既存のscriptのイベントが効かない問題について
- 既存のHTMLに追加された要素に対してもイベントが発生しない問題について
- ajaxを使って追加したDOM要素にイベントを適用する方法について
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
方法1 (3)のあとにaddEventListenerする 方法2 jQueryを使ってonでイベントを追加する
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
方法3 clickイベントは伝播するので、個々のclass="sample"要素に設定せずに、上位要素(documentなど)でイベントを監視し、発生元がclass="sample"の要素であったら処理をするようなイベント処理にする。 (ANo1様の方法2とほぼ同じ効果になります) <極簡単なサンプル> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> /*@cc_on@*/ document./*@if(1)attachEvent("on"+@else@*/addEventListener(/*@end@*/"click", function(evt){ var t = evt./*@if(1)srcElement@else@*/target/*@end@*/; if(t.className === "sample"){ //必要な処理。例えば… alert("イベント発生"); } }, false); </script> </head> <body> <p class="sample">元からある対象要素</p> <p>ここは関係ない</p> <div>例えばここにあとから追加する</div> </body> </html>