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

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

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

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

3355閲覧

Datatablesを使った管理画面でページ移動した際に発火しない

takepieee

総合スコア686

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/01/18 10:32

サイトの管理画面でライブラリのDatatablesを使用しています。
https://datatables.net/

各行毎に入力エリアがあり、保存ボタンを設置しています。

<tr> <td>100</td> <td><input type="text" id="desc1_100" value=""></td> <td><button type="button" id="smt100">保存</button></td> </tr>

行は動的に出力していますので、formもJSも別箇所に動的に出力しています。

<form method="post" id="form_100" action="./"> <input type="hidden" name="id" value="100"> <input type="hidden" id="desc2_100" name="description" value=""> </form> ~~ $("#smt100").on("click", function() { $("#desc2_100").val($("#desc1_100").val()); $("#form_100").submit(); });

最初に表示される行についてはこれで問題なく動くのですが、ページネーションをクリックし、dispay:noneで隠れていたページの行になると発火しません。

jQueryの部分をdiv#addjsで囲い、

$('.paginate_button').on('click', function() { $('#addjs').load(document.URL+'#addjs'); });

で行けるかな・・と思いましたが、残念ながらDatatables部分のレイアウトが崩れてしまいました。

何卒ご指南を頂きたく、お願い致します。

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

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

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

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

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

kei344

2017/01/18 10:36

「動的に出力」とはどのような仕組みでしょうか。
takepieee

2017/01/19 04:55

外出しており、ご返答が遅れ申し訳ありません。PHPで結果をループして出力しております。
guest

回答1

0

ベストアンサー

<button type="button" id="smt100">保存</button>が書きかえられた時にイベントリスナが壊れます。
詳しくは「jQuery デリゲート」あたりでググるといいと思いますが、↓あたりを読んでみてはいかがでしょうか。

Ajaxなどで追加した要素に対して、.clickメソッドなどでの操作は行えない。

jQueryで追加した要素を操作するにはon()メソッドで - Qiita

投稿2017/01/19 04:08

Lhankor_Mhy

総合スコア36074

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

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

takepieee

2017/01/19 06:36

$(document).on('click','#smt100',function(){... に変更することで完璧に動きました。 ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問