[解決済み] Jquery UIダイアログで「確認」ダイアログを実装するには?
質問
JQuery UI Dialogを使用して、醜いダイアログを置き換えようとしています。
javascript:alert()
ボックスを使用します。
私のシナリオでは、アイテムのリストがあり、それらの個々の横に、それらのそれぞれについて "delete"ボタンを持つことになります。
psuedo htmlの設定は次のようなものになります。
<ul>
<li>ITEM <a href="url/to/remove"> <span>$itemId</span>
<li>ITEM <a href="url/to/remove"><span>$itemId</span>
<li>ITEM <a href="url/to/remove"><span>$itemId</span>
</ul>
<div id="confirmDialog">Are you sure?</div>
JQパートでは、ドキュメントレディの段階で、まずdivをモーダルダイアログにして必要なボタンを設置し、削除する前に確認のためにこれらの"a"を発射するように設定しています。
$("ul li a").click(function() {
// Show the dialog
return false; // to prevent the browser actually following the links!
}
OK、ここで問題です。開始時に、ダイアログは誰(アイテム)がそれを起動するのか、また、アイテムID(!)もわかりません。もし、ユーザーがYESを選択した場合、それを削除するためのリンクに従うように、これらの確認ボタンの動作を設定するにはどうすればよいでしょうか?
解決方法は?
私もちょうど同じ問題を解決する必要がありました。 これを動作させるのに重要だったのは
dialog
の中で部分的に初期化されている必要があります。
click
イベントハンドラで、確認機能を使いたいリンクに対応します (複数のリンクに対応する場合)。 これは、確認ボタンをクリックしたときのイベントハンドラに、リンクのターゲットURLを注入する必要があるためです。 どのリンクに確認の動作をさせるかを示すために、CSS クラスを使用しました。
以下は、例として適切なように抽象化した私の解決策です。
<div id="dialog" title="Confirmation Required">
Are you sure about this?
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
modal: true
});
});
$(".confirmLink").click(function(e) {
e.preventDefault();
var targetUrl = $(this).attr("href");
$("#dialog").dialog({
buttons : {
"Confirm" : function() {
window.location.href = targetUrl;
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
$("#dialog").dialog("open");
});
</script>
<a class="confirmLink" href="http://someLinkWhichRequiresConfirmation.com">Click here</a>
<a class="confirmLink" href="http://anotherSensitiveLink">Or, you could click here</a>
CSSクラスでリンクを生成できるのであれば、これでいけると思います(
confirmLink
私の例では)。
ここでは jsfiddle というコードが入っています。
完全な開示のために、私はこの特定の問題に数分を費やし、私は同様の答えを提供したことを記しておきます。 この質問 も、当時は回答がなかった。
関連
-
[解決済み] 繰延べと約束
-
[解決済み] BootstrapがUncaught Errorを投げる:BootstrapのJavaScriptはjQueryを必要とする【終了】。
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】jQuery.addClassが動作しない。
-
[解決済み] jQueryを使って入力が空かどうかをチェックする
-
[解決済み] jQueryがfadeOutで動作しない
-
[解決済み] リーフレット - 既存のマーカーを検索したり、マーカーを削除するには?
-
[解決済み] AJAXを同期させる(SJAX)にはどうすればよいか
-
[解決済み] Vimeoのコントロールを非表示にする方法
-
[解決済み] ネストした多次元のjsonオブジェクトの書き方
-
[解決済み] フォーム送信のjQueryが動作しない
-
[解決済み] jQuery UIダイアログのクローズボタンを削除するには?
-
[解決済み] アラートボックスのスタイルを変更するには?