🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

2回答

2100閲覧

innerHTMLにセットしたHTMLのボタンが有効にならない(イベントが起きない)

sakura-shi

総合スコア93

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2019/10/31 00:22

#わからないこと
jsonの戻り値にHTMLタグを含んだ文字列があり、それをinnerHTMLにセット。
その後、そのHTMLにあるボタンをclickしてもclickイベントが起きない
clickイベントを発生させるようにしたいがどうしたらいいか?

#手順
1 PHPでボタンを含んだFORMのある画面を作成しロード
2 FORM内のボタンをclickすることで、FORM内の<div>にajaxの戻り値をセット
この戻り値には、HTMLタグが含まれる。ボタンもある。
3 次に、<div>にセットされたHTML内のボタンをclick
ここでclickイベントが起きないことが問題
この時、clickイベントを発生させるようにしたいがどうしたらいいか?

HTML

1<form> 2<div class="area"> 3<table> 4<tr> 5<td> 6<input type="button" value="送信" id="send"> 7<td> 8</tr> 9<!-- 他のフォーム要素 動的に変わる可能性あり--> 10</table> 11</div> 12</form> 13

js

1<script type="text/javascript"> 2 $(function(){ 3 $('.send').on('click',function(){ 4 $.ajax({ 5 url:'/hoge.php', 6 type:'POST', 7 dataType:'json', 8 data:{ ・・・・} 9 .done( (data) => { 10 $('#area').empty(); 11 $('#area').html(data.area); 12 }) 13 .fail( (data) => { 14 }) 15 .always( (data) => { 16 }); 17 }); 18 }); 19</script>   

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

.名前はclassに対する指定です。
HTMLを見る限りidなので#名前です。

あと、動的に追加される要素に対するイベントは上位のdocumentから監視する必要があります。
動的に生成したDOM要素に対してjQueryでイベントを設定する場合

投稿2019/10/31 00:29

編集2019/10/31 00:32
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

idとclassの参照の仕方が逆転してますね

javascript

1<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<script> 3$(function(){ 4 $('form').on('click','#fuga',function(){ 5 alert('fuga!'); 6 }); 7 $('#hoge').on('click',function(){ 8 $.ajax({ 9 url:'hoge.php', 10 dataType:'json', 11 }).done(function(data){ 12 $('#area').empty(); 13 $('#area').html(data.area); 14 }); 15 }); 16}); 17</script>    18<form> 19<div id="area"> 20<table> 21<tr> 22<td> 23<input type="button" value="hoge" id="hoge"> 24<td> 25</tr> 26</table> 27</div> 28</form>
  • hoge.php

PHP

1{"area":"<input type=\"button\" id=\"fuga\" value=\"fuga\">"}

投稿2019/10/31 01:11

編集2019/10/31 01:12
yambejp

総合スコア116661

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問