在等待来自对话框的用户反馈时出现流量控制问题

Flow control problems while waiting for user feedback from a dialog box

本文关键字:流量控制 问题 用户反馈 对话框 在等待      更新时间:2023-09-26

我使用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点击事件被触发,userconfirmed()被调用来检查是否为真/假,对话框打开以获得用户的反馈,但在用户点击"Proceed"或"Cancel"之前,控制流向警报语句。如何让原来的click事件触发的函数在继续执行之前等待用户的反馈?

谢谢!

userconfirmed()将始终返回true,解决方案是使用回调

var userConfirms = function(onSuccess, onCancel) { .....

然后点击功能(取消和成功)

click: function() { $.isFunction(onSuccess) && onSuccess() ....

然后像这样调用

userConfirms(callbackForSuccess, callbackForCancel)