javascript - 如何延迟函数返回,直到发生点击之后

标签 javascript jquery return-value

下面的confirmDialog函数在另一个jquery函数中被调用。当此确认对话框返回 true 时,其他函数应该继续...但事实并非如此。其原因似乎是,当单击“继续”按钮时,整个确认对话框函数已经执行(返回 false)。如何延迟它返回任何内容,直到单击按钮之后?

(或者,如果我完全走错了路,问题是什么以及如何解决它?)

function confirmDialog(message) {
....
    $('input#continue', conf_dialog).click(function() {
        $(this).unbind();
        $('p',conf_dialog).fadeOut().text('Are you really sure you want to '+message).fadeIn();
        $(this).click(function() {
            $(conf_dialog).remove();
            return true;
        });
    }); 
    $('input#cancel', conf_dialog).click(function() {
        $(conf_dialog).remove();
        return false;
    }); 
}

最佳答案

我不确定你可以。 据我所知,只有像 confirmalertprompt 这样的内置函数可以在请求答案时被阻止。

一般的解决方法是重构代码以使用回调(或使用内置函数)。因此,这意味着将调用者函数分成两部分,并在获得输入时执行第二部分。

关于javascript - 如何延迟函数返回,直到发生点击之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033759/

相关文章:

python - 创建列表以填充组合框时出错

error-handling - 从例行程序中返回某些内容时的最佳实践

javascript - 使用 SimpleMaps 的英国邮政编码

javascript - 无法使用 Orientjs 查询 OrientDB

javascript - 如何用 jQuery 复选框替换数组中的值

jquery - 基于jQuery的多文件 uploader

javascript - 如果查询为空,如何设置 Algolia 不返回任何结果?

javascript - 用于 native (或类 native )控件的 BlackBerry JavaScript API

javascript - Firefox 浏览器中选项卡的标题不闪烁

python 帮助。查找文件中的最大值并打印出带名称的值