2

jqueryUIのタブを使用しています。ユーザーがタブを切り替えると、保存されていない変更をチェックし、それに応じてユーザーにプロンプ​​トを表示します。ただし、ユーザーが[はい]または[いいえ]をクリックする前に、とにかくタブが読み込まれます。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

結局、FancyBoxの代わりに標準のjavascript確認ボックスを使用することになりました。これで私の問題は解決しました。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 に答える