我正在尝试使用 JQuery 对话框来确认从不同表中删除不同的记录,因此它是从代码中的不同位置引用的 div(重用对话框以确认不同的操作)。我正在使用这个例子:http: //jqueryui.com/dialog/#modal-confirmation
由于每次调用都必须确认一个非常不同的操作,因此我不能只将要执行的代码放在对话框选项按钮的 Ok 或 Cancel 按钮的回调中{}
我想要一个类似于 VB 的 MsgBox 的东西,它的返回值指示按下的按钮(无论是“Ok”、“Accept”还是“close”......)。像这样的东西:
if ( $(target_dialog).dialog('open') == 'Ok'){
// Do something awesome
}else if( $(target_dialog).dialog('open') == 'Cancel') {
// Do something not that awesome
}
谢谢你的帮助。
编辑:这有点像这里的 JS confirm() 示例(http://www.w3schools.com/js/tryit.asp?filename=tryjs_confirm),但我不希望它是一个弹出窗口,而是一个可定制的和灵活的 jqueryui 对话框。
EDIT2:就像@vishwanath 建议的那样
$("#dialog-confirm").dialog({
//height, modal, width... settings
buttons : {
"OK": function() {
// here is the magic
action = $(this).data('action');
var actionToPerform = actions[action];
actionToPerform.call(this);
// end of magic
$( this ).dialog( 'close' );
},
Cancel: function() {
console.log("non awesome stuff here");
$( this ).dialog( 'close' );
}
}
});
var actions = {
action1 : function(){
console.log(''Do action1 stuff here);
},
action2 : function(){
console.log('Do action2 stuff here');
}
// and so on...
}
并且可以针对不同的答案从不同的父母执行不同的动作。
$( '#dlgConfirm' ).data('action', 'action1').dialog( 'open' );
谢谢。