質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1983閲覧

HTMLのonclickについて

it_solution_lab

総合スコア71

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/01/21 16:55

PHP+JavaScript&jQueryで業務ページ作成中です
dbから値を持ってきて PHPで表示している部分では

HTML側で設定している
<input type="button" class="classname" value="削除">
としているところでは
jQueryの

$('#classname').on('click', function() {
~処理
});
の処理が正しく呼ばれて処理されますが

Javascriptで作成した htmlのテキストを
目的の場所の前に
insertBefore
した行だと クリックイベントが起こらず jQueryのfunctionが呼ばれません
html内にあるテンプレートをobjectで取得し insertBeforeした場合には
functionも呼ばれるのですが
.html()で取り出し中身を書き換えたり
javascript内で
template='<html><body><input type="button" class="classname" value="削除">

</body></html>';

と記述したものなど
テンプレートの中身を書き換えたいので手作りするとボタンが効かなくなります
texthtmlがあったとして
テキストをオブジェクトにキャストする方法で
object=$(text)
はやってみましたが実現できませんでした
いったんinnerHTMLで出力し 取得する方法でもうまくいきませんでした
http://d.hatena.ne.jp/yatt/20090409/1239292833
(参考ページ)
どなたか解決策を教えていただければ幸いです

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

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

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

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

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

kei344

2018/01/21 17:07

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
guest

回答2

0

ベストアンサー

後から動的に追加したDOMでイベントを起こしたい場合は、次のように書いてみてください。

JavaScript

1$('body').on('click', '.classnameもしくは#idname', function() { 2 //~~some actions~~ 3});

投稿2018/01/21 17:09

saken649

総合スコア60

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

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

it_solution_lab

2018/01/21 17:26

追加する部分にいくつかボタンがあり その中で id名が数字が増えてきって特定できないのですが これは どこに記述すればよいのでしょうか
it_solution_lab

2018/01/21 18:26

既存のボタンのfunctionを教えていただいたように記述を変更しましたら 動作するようです 正しい結果になっているか十分な調査はまだ行っておりませんが、とりあえず、試してみたボタンは動作いたしました。
saken649

2018/01/22 02:39 編集

idが増えるようであれば、指定する際に前方一致を使うことで対応可能かと思います。 そのあたりは、普通のクラスやidの指定と同様に捉えて頂いて良いと思います。
it_solution_lab

2018/01/22 13:09

教えていただいた方法で、問題を解決しました。 まだ別の課題はありますが、本件については、これで終了します 回答ありがとうございました
guest

0

パフォーマンスを気にしないのであれば、下記のようにイベント監視する事で動的に作成したDOMに対してもイベントを実行できるようになります。

$(document).on('click', '.指定クラス', function(){ // 処理 });

投稿2018/01/22 00:56

hiro0218

総合スコア68

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

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

it_solution_lab

2018/01/22 13:08

パフォーマンスは重視するので、お知らせいただいた内容は採用しませんが、回答ありがとうございます
x_x

2018/01/22 14:29

いやいや、パフォーマンスならほかの回答と大差ないと思いますが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問