我正在使用javascript和jquery对话框确认用户想要在Web客户端向服务器查询某些数据之前继续。
$("#get_stories").click(function(){
if (userConfirms()){
getStories() //call routine to load and process stories
} else {
alert("Not getting any stories")
};
return false;
});
var userConfirms = function(){
var $dialog = $("#dialogBox");
$dialog.html("Are you sure?")
$dialog.dialog("option", "buttons",
[
{
text: "Proceed",
click: function(){
$dialog.dialog("close");
return true
}
},
{
text: "Cancel",
click: function(){
$dialog.dialog("close");
return false
}
}
]
);
$dialog.dialog("open");
};
正在发生的是get_stories click事件正在触发,正在调用userConfirms()来检查true / false,对话框打开以获得用户的反馈,但在用户点击“Proceed”或“Cancel”之前,控制流程到警报声明。在继续执行之前,如何使原始点击事件触发的功能等待用户的反馈?
谢谢!
答案 0 :(得分:0)
userConfirms()将始终返回true
,解决方案是使用回调
var userConfirms = function(onSuccess, onCancel) { .....
然后点击功能(取消和成功)
click: function() { $.isFunction(onSuccess) && onSuccess() ....
就这样打电话
userConfirms(callbackForSuccess, callbackForCancel)