Jquery选项卡 - 激活前显示确认

时间:2012-10-18 16:55:41

标签: jquery-ui tabs fancybox jquery-ui-tabs

我正在使用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;
}

2 个答案:

答案 0 :(得分:2)

使用标准确认而不是花哨的工作是否可以成为快速解决方案? http://jsfiddle.net/nuywj/

答案 1 :(得分:1)

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

function CheckSomething() {
    if (myCondition) {
        return confirm("Are you sure you want to change tabs without saving?");
    }
    else {
        return true;
    } 
}