我使用Bootstrap和Jquery创建了自定义对话框,如Alert和ConfirmDialog。
以下是示例:http://jsfiddle.net/eb71eaya/
问题 - 在回调中我进行了一次ajax调用,如果它返回true,我会显示一个状态为成功的警告 - 错误。但是当请求进行删除时,此警报不会显示。 (在示例中,我没有发出ajax请求,只显示警报,但这也不起作用。)
function getEsrbAlertDialog(title, msg, callBack, obj) {
var esrbAlertDialog = $('#esrb-dialog');
if (esrbAlertDialog.length == 0) {
esrbAlertDialog = getEsrbDialog(title, msg);
} else {
$('.modal-title', esrbAlertDialog).html(title);
$('.modal-body', esrbAlertDialog).html(msg);
}
$('.modal-footer div', esrbAlertDialog).empty();
$('.modal-footer div', esrbAlertDialog).append('<button class="btn btn-primary pull-right close-btn">Close</button>');
$('.close-btn', esrbAlertDialog).unbind('click').click(function () {
if (typeof callBack === "function") {
todo = callBack(obj);
}
esrbAlertDialog.modal('hide');
});
return esrbAlertDialog;
};
我想在确认对话框关闭时执行回调。
更新:我理解这样的逻辑:当用户点击“确定”按钮时,必须关闭对话框。当它已经关闭时,然后激活事件'hidden.bs.modal',它必须执行callBack。但是在确认对话框完成隐藏之前执行了CallBack。
答案 0 :(得分:1)
这一行:
esrbConfirmationDialog.modal('hide');
隐藏第二个对话框。
编辑: 两个对话框都使用与引用相同的div:
var esrbAlertDialog = $('#esrb-dialog');
为警报创建一个单独的对话框,为确认创建一个对话框。
答案 1 :(得分:0)
将this.Alert函数替换为下面的代码,即只添加e.preventDefault();
this.Alert = function (dialogMsg, callBack, obj) {
var dlg = getEsrbAlertDialog('Alert', dialogMsg, callBack, obj);
e.preventDefault();
dlg.modal('show');
};