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

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

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

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

JavaScript

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

Q&A

解決済

1回答

3581閲覧

jQueryUI .dialog(option) buttonに対してidを付けること可能でしょうか?

cham_danb

総合スコア3

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

JavaScript

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

0グッド

0クリップ

投稿2020/05/13 05:45

編集2020/05/13 06:29

jQueryUI公式サイト
jQueryUI.dialogを使用してダイアログを表示させています。

button要素に対して、クリックされた際に他で定義した、共通イベントを発生させたいのですが、id識別させるための設定が調べても分かりませんでした。
ご存じの方いらっしゃいましたら、ご教示いただけますと幸いです。

JavaScript

1// dialogのボタン押下時、以下を動かしたい。idがbtnで前方一致していてクリック時、発生するイベント。 2$("[id^='btn']").on('click', function (e) { 3 if (!func()) { 4 // セッションタイムアウト時、同時に発生したイベントはすべて中断される 5 e.stopImmediatePropagation(); 6 } 7 return false; 8}); 9***************************************************************************** 10$('#div').dialog({ 11 modal: true, 12 width: 530, 13 height: 310, 14 title: '○○', 15 buttons: { 16 'OK': function () { 17 ・・・・以下処理 18 }, 19 'キャンセル': function () { 20 // ダイアログを閉じる 21 $(this).dialog('close'); 22 } 23 }, 24 // 以下でclassは定義しているが、idはできなかった 25 create: function () { 26 27 var $dialogButton = $(this).closest('.ui-dialog').find('.ui-dialog-buttonset button'); 28 var $dialogTitle = $(this).closest('.ui-dialog').find('.ui-dialog-title'); 29 30 // ダイアログにクラスを設定する 31 $dialogButton.addClass('margin-l35 margin-t05 btn btn-success btn-xs'); 32 $dialogButton.css('height', '30px'); 33 $dialogButton.css('font-size', '18px'); 34 $dialogTitle.css('font-size', '24px'); 35 } 36 }); 37

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

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

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

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

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

kei344

2020/05/13 05:56

プラグイン/ライブラリは公式配布サイトのURLを質問文に追記ください。(URLにはリンクを張ることができます)
cham_danb

2020/05/13 06:07

ご指摘ありがとうございます。質問文に追記いたしました。
guest

回答1

0

ベストアンサー

idの設定は以下のように記載します。

JavaScript

1$dialogButton.attr('id', 'btn_dialog');

また動的に作成した要素のイベントは、$("[id^='btn']").on('click', function~)では捉えられないです。
以下のように記載してください。

JavaScript

1$(document).on("click", "[id^='btn']", function)

https://qiita.com/negi/items/6ec0d3cedba499eac81a

投稿2020/05/13 06:09

編集2020/05/14 03:30
satokei

総合スコア1204

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

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

cham_danb

2020/05/13 06:51

ご回答ありがとうございます。 なるほど・・・そうゆうことになっているんですね。 .dialogのボタンに対してiはclassは設定されているのですが ---$(document).on("click","[class='btn']",function()~)--- と書くということでしょうか?
satokei

2020/05/13 09:20 編集

すみません。早とちりをしていましたね。 「以下でclassは定義しているが、idはできなかった」  ↑(idを指定しても、clickイベントを捉えなかったと解釈してました) id指定は以下でできないですか?(一意である必要があります) $dialogButton.attr('id', 'btn~'); ------------------- 【別案】 clickイベント時の処理を関数で定義して、以下でよいかも 例)関数名:btnOnClick とした場合 $dialogButton.on('click', btnOnClick)
cham_danb

2020/05/14 01:56

ご連絡遅くなり申し訳ありません。 $dialogButton.attr('id', 'btn_dialog');でidを指定することができました! そして $(document).on("click", "#btn_dialog~", function(){ (処理) }); で指定したidに対してイベントを発生させることができました。 別案でご提案していただいた方も試してみました。 こちらはdialogButtonが生成されていないと、定義されていないためエラーが発生しました。 dialogButtonが生成されているときのみに動くようにすれば良いかもしれませんが、記述方法がわかりませんでした。 ご回答いただいた内容で解決いたしましたので、ベストアンサーとさせていただきます。
satokei

2020/05/14 03:30

了解しました。また回答を更新しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問