次のスニペットを使用すると、クリックされたボタンのコールバック関数で何かを実行できます。ただし、コールバック関数、またはユーザーが「X」ボタンをクリックしたとき/ダイアログを閉じたときにコードを実行できるような同様の回避策を取得するにはどうすればよいですか?
bootbox.dialog({
title: "Woah this acts like an alert",
message: "Cool info for you. You MUST click Ok.",
buttons: {
sucess:{
label: "Ok",
callback: callback
}
}
});
callback(){//stuff that happens when they click Ok.}
閉じるボタンを無効化/非表示にしたくない
closeButton: false,
このためのonEscape関数があります。
bootbox.dialog({
message: 'the msg',
title: "Title",
onEscape: function() {
// you can do anything here you want when the user dismisses dialog
}
});
変数を使用して、OK
またはx button / escape key
をクリックした後にモーダルが非表示になっているかどうかを確認できます
var status = false;
$('.btn').on('click', function () {
bootbox.dialog({
title: "Woah this acts like an alert",
message: "Cool info for you. You MUST click Ok.",
buttons: {
sucess: {
label: "Ok",
callback: function () {
status = true;
}
}
},
onEscape: function () {
$('.bootbox.modal').modal('hide');
}
});
});
$(document).on("hidden.bs.modal", ".bootbox.modal", function (e) {
callback();
});
function callback() {
if (!status) {
onClose();
} else {
onOK();
status = false;
}
}
function onClose() {
$('p.alert span').removeClass().addClass('text-danger').text("Dismissed");
}
function onOK() {
$('p.alert span').removeClass().addClass('text-success').text("Sucess");
}
一部の人々はこれを少しハックアラウンドのように見るかもしれません。私が望んでいたようにそれは私にうまく合っていますが、誰かがメッセージを受け入れたことを開発者として acknowledge 次のイベントをトリガーしました。
Bootbox.js
のネイティブconfirm()
メソッドを使用して実行callback
アクションを提供します。 confirm
クラス名を使用して、hidden
ボタンにオプションとして追加のクラスを追加しました(はconfirm()
呼び出しで指定する必要があります)(たとえば、Bootstapには、呼び出されたdisplay:none
のヘルパークラスhidden
。
これにより確認ボタンが非表示になるため、モーダルは通常のアラートボックスとして表示されます。
bootbox.confirm({
message: "Some Button Text",
buttons: {
"cancel": {
label: "<i class='fa fa-check'></i> OK - I understand",
className: "btn btn-primary"
},
//Hide the required confirm button.
"confirm": { label: "", className: "hidden" }
},
callback: function(){
//Begin Callback
alert( "Finished" );
}
});