2

我正在使用 jquery UI 的选项卡。当用户切换选项卡时,我会检查未保存的更改,并相应地提示用户。但是,在用户甚至单击“是”或“否”之前,该选项卡仍然会加载。有谁知道我怎样才能让我的函数在我的fancybox对话框返回结果之前不返回任何东西?

你可以看到我已经尝试了几种不同的方法来在 CheckSomething() 中返回我的布尔值。

$("#myTabs").tabs({ 
    select:
        function (event, ui) {
            return CheckSomething();
        },

    show: 
        function (event, ui) { 
            //do some stuff
        }
});

function CheckSomething() {
    var loadMyTab = true;  //If I set this to false, then it always returns false.
    if (myCondition) {
        //Show a FancyBox prompt.

        if (fancyYes) {
            //return true;
            loadMyTab= true;
        }
        else {
            //return false;
            loadMyTab = false;
        }
    }
    else {
        //return true;
        loadMyTab = true;
    }
    return loadMyTab;
}
4

2 回答 2

2

通过标准确认而不是花哨的工作,它可以成为一个快速的解决方案吗?http://jsfiddle.net/nuywj/

于 2012-10-18T17:53:40.497 回答
1

我最终选择了一个标准的 javascript 确认框而不是 FancyBox。这解决了我的问题,因为 Confirm 将阻止代码被执行:

function CheckSomething() {
    if (myCondition) {
        return confirm("Are you sure you want to change tabs without saving?");
    }
    else {
        return true;
    } 
}
于 2012-10-18T17:51:45.663 回答