4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[JavaScript] [jQuery UI] 動的・汎用的・使い捨てなダイアログ(ポップアップ)の表示

Last updated at Posted at 2017-01-17

jQuery UI にはダイアログ表示に便利な dialog メソッドが用意されています。通常の使い方としては、あらかじめ html 部分でダイアログの UI を定義しておきますが、事前の html 定義不要で、JavaScript のみで動的に生成することもできます。

▼ダイアログ表示例
dialog.PNG

1)jQuery UI などの定義

まず初めに jQuery および jQuery UI の宣言が必要です。ダウンロードするのは面倒なので、今回は CDN のを使います。

html
<head>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>

2)テスト用ボタンの作成

次に、テスト用のボタンを設置します。

html
<body>
<button id="btn1">ダイアログ表示</button>
</body>

3)ダイアログ表示処理

ボタンを押すと、ダイアログが表示されるように、処理を記述します。

JavaScript
// ボタン押した時の処理
$("#btn1").click(function(){
	// ダイアログ用のボタン(配列)
	var buttons = [
		{
			text: "OK",
			click: function () { alert("OK!!"); }
		},
		{
			text: "閉じる",
			click: function () { $(this).dialog('close'); }
		}
	];
	// ダイアログを表示
	showDialog("たいとる", "めっせーじ", buttons);
});

//------------------------------
// ダイアログ表示
//------------------------------
function showDialog(title, message, buttons) 
{
	var html_dialog = '<div>' + message + '</div>';
	$(html_dialog).dialog({
		title:   title,
		buttons: buttons,
		close:   function() { $(this).remove(); }
	});
}

※動的に生成しているので、ダイアログの close イベントで、きちんと破棄するようにしています。

デモはこちら。
https://jsfiddle.net/yasumodev/7d4n6ryn/2/

(・o・ゞ いじょー。

4
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?