jQuery UIを使って簡単にダイアログを表示させる方法
ブラウザ上でユーザーに対してちょっとした確認を行いたい場合はJavaScriptのconfirmを用いて「はい」「いいえ」を選択してもらっていたが、それ以外の選択肢の追加であったり、メッセージ内にリンクを設置したい案件があった。ダイアログを設置するのが良さそうなものの、自身で設置したことが無かった。色々調べてみたところjQuery UIが簡単に設置できたので以下に方法をメモ。
サンプル
https://taitan916.info/sample/dialog/
「ダイアログ表示」ボタンをクリックするとダイアログが表示される。その後に「はい」「キャンセル」「その他」「リンク」をクリックすると、ダイアログが非表示となり「●●をクリックしました」と文言が表示される。
ソースコード
<html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jQuery UIのダイアログサンプル</title> <link href="//stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body> <a href="javascript:void(0);" class="btn btn-primary" id="dialog_btn"> ダイアログ表示 </a> <div id="dialog_area" style="display:none;"> <p> ダイアログテストです。<br> <a href="javascript:void(0);" id="dialog_link" style="font-weight: bold; color: #f00;">リンク</a>も設置できます。<br> </p> </div> <div id="dialog_result"> </div> <script type="text/javascript" src="//code.jquery.com/jquery-3.5.1.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> <script> $(function(){ //ダイアログ表示ボタンクリック時 $('#dialog_btn').click(function(){ $("#dialog_area").dialog({ modal:true, title:"登録確認", buttons: { "はい": function() { $('#dialog_result').html('はいをクリックしました。'); $('#dialog_area').dialog('close'); }, "キャンセル": function() { $('#dialog_result').html('キャンセルをクリックしました。'); $('#dialog_area').dialog('close'); }, "その他": function() { $('#dialog_result').html('その他をクリックしました。'); $('#dialog_area').dialog('close'); }, } }); }); //ダイアログ内リンククリック時 $('#dialog_link').click(function(){ $('#dialog_result').html('リンクをクリックしました。'); $('#dialog_area').dialog('close'); }); }); </script> </body> </html>
3つ目のボタンが設置及びメッセージ内にリンクを設置し、それぞれのクリック時に異なる処理を行える。
リファレンス
https://js.studio-kingdom.com/jqueryui/widgets/dialog
所感
jQuery UIはカレンダーピッカーを使うまで何となく食わず嫌いしていたけどすごく便利かも。
関連記事
-
-
スマホ対応カルーセルスライダーslickの使い方
イメージスライダーでslickという使ったことないjQueryプラグインを見かけ ...
-
-
グラフ表示ライブラリのamChartsがよさそう
どこかのサイトを閲覧していた際に、恐らくはJavaScriptのライブラリで描写 ...
-
-
スマホ対応のjQueryのカラーピッカープラグイン
以前の記事でカラーピッカープラグインのことを書いたけど、スマホでは使えない。なの ...
-
-
javascriptで論理和演算子の特殊な使い方
論理和「||」の特殊な使い方を教わったのでメモ。 普段使うのは、 if (a = ...
-
-
jquery.snipeの使い方
使い方によっては面白くなりそう。 ■jquery.snipe http://ra ...
-
-
tableのフィルター機能
jQueryのプラグインで簡単にフィルター機能が つけられたのでメモ。 ■必要な ...
-
-
bootstrap-datetimepickerについて
日付のピッカーはよく見るけど、時間のピッカーはあまり見ないので、 普通のセレクト ...
-
-
JavaScriptで画像に光沢をつける(glossy.js)
凄く簡単に光沢がつけられるライブラリがあったのでメモ。 ライブラリを呼び出してc ...
-
-
Ajaxで負荷軽減
業務中、専用のページでfile_get_contents的なものは あまり使わな ...
-
-
highcharts.jsで棒グラフと折れ線グラフを1つのグラフに入れる
やりたかった事は、 ・棒グラフと折れ線グラフを入れたい ・Y軸はそれぞれ違う値に ...