我对simpleModal确认示例有问题。我想等待结果作为基本确认对话框,然后根据按下的按钮采取行动。我在其他js中调用。我的js代码是:
var res = confirm("Delete elements?");
if (res == true) {
mainController.deleteNode(nodeMoveMessage, url);
}
制作对话框的js是:
function confirm(message, callback) {
var modalWindow = document.getElementById("confirm");
console.log(modalWindow);
$(modalWindow).modal({
closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
position: ["20%",],
overlayId: 'confirm-overlay',
containerId: 'confirm-container',
onShow: function (dialog) {
var modal = this;
$('.message', dialog.data[0]).append(message);
// if the user clicks "yes"
$('.yes', dialog.data[0]).click(function () {
// close the dialog
modal.close(); // or $.modal.close();
// call the callback
return true;
});
}
});
}
我的jsp中的div是:
<div id='confirm'>
<div class='header'><span>Confirm</span></div>
<div class='message'></div>
<div class='buttons'>
<div class='no simplemodal-close'>No</div><div class='yes'>Yes</div>
</div>
</div>
非常感谢!
您必须在模态中添加回调,所以请先在confirm
函数中添加它:
function confirm(message, callback) {
var modalWindow = document.getElementById("confirm");
console.log(modalWindow);
$(modalWindow).modal({
closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
position: ["20%",],
overlayId: 'confirm-overlay',
containerId: 'confirm-container',
onShow: function (dialog) {
var modal = this;
$('.message', dialog.data[0]).append(message);
$('.yes', dialog.data[0]).click(function () {
modal.close(); $.modal.close();
callback(); // HERE IS THE CALLBACK
return true;
});
}
});
}
然后,您可以使用回调调用confirm
函数,该回调在单击yes按钮时执行,如下所示:
function doSomething() {
mainController.deleteNode(nodeMoveMessage, url);
}
confirm("Delete elements?", doSomething);
现在,当用户单击yes按钮时,doSomething
函数将被调用,元素将被删除。