我正在使用JueryUI对话框来显示警告消息。 我遇到的问题是回调立即被执行。我希望只有在对话框关闭后才能执行回调。
在对话框关闭之前,有没有正确的方法来确保回调不执行?
myAlert = function (title, msg, callback) {
var alertElement = $('#alertElement ');
alertElement .dialog({
modal: false,
resizable: false,
width: 500,
buttons: {
OK: function () {
$(this).dialog("close");
}
},
open: function (event, ui) {
$(this).parent().find('.ui-dialog-titlebar-close').hide();
$(this).parent().find('.ui-dialog-buttonpane button:first').focus();
},
close: function () {
if (typeof callback == "function")
{ callback(); }
}
});
}
};
这是我的电话......
var urlString = "some url string";
function printWindow(urlString) {
window.open(urlString, 'Print', "toolbar=no,menubar=no,status=no");
};
myAlert("Warning", "This is a warning.", printWindow(url));
答案 0 :(得分:1)
回调会立即执行,因为您使用()
调用它,因此printWindow
方法的返回值将传递给myAlert
。
要稍后通过printWindow
作为参数传递url
,您可以使用bind方法:
myAlert("Warning", "This is a warning.", printWindow.bind(null,url));
bind方法的返回值是一个新的printWindow
函数,其第一个参数将是传递给bind的第二个参数(url
)。