Пользовательский интерфейс JQuery не отключается - PullRequest
2 голосов
/ 02 июля 2011

Я много пробовал, но безуспешно. У меня есть 3 вкладки. Индекс табуляции 0,1,2

Когда страница загружена, индекс 2-й вкладки должен быть отключен. При нажатии на индекс первой вкладки должен включиться индекс третьей вкладки.

Теперь я нахожусь на 3-й вкладке индекса, и если я иду на 0 вкладке индекса, чем 2 вкладки индекс должен отключить.

So

0 index = disbale 2-й index

1 индекс = включить 2-й индекс

2 index = включить 0,1 index

Это то, что я хочу. Код ниже не работает, когда я на вкладках-1. Не отключение индекса 2: (

$('#Paymenttabs').tabs({
    select: function(e, ui) {
        var isValid = true;
        var num = 0;
        if (ui.panel.id == "tabs-1"){
            $('#Paymenttabs').tabs("disable",[2]);
        }else if (ui.panel.id == "tabs-2"){
            $('#Paymenttabs').tabs( "enable" , 2 )
        }else if (ui.panel.id == "tabs-3"){
            $('#Paymenttabs').tabs("option","disabled",[]);
        }
    }
});

1 Ответ

4 голосов
/ 02 июля 2011

Я думаю, причина этого в том, что согласно документации:

Выбранную вкладку нельзя отключить.

Поэтому, когда вы переходите от [tab3] к [tab1], вы пытаетесь отключить [tab3], на котором вы сейчас находитесь. Вы можете обойти это, установив таймер на небольшое количество времени и выполнив код переключения вкладок после завершения этого таймера. Это гарантирует, что активная вкладка не та, которую вы пытаетесь отключить:

$('#Paymenttabs').tabs({
    select: function(e, ui) {
        setTimeout(function() {
            var isValid = true;
            var num = 0;
            if (ui.panel.id == "tabs-1") {
                $('#Paymenttabs').tabs("disable", 2);
            } else if (ui.panel.id == "tabs-2") {
                $('#Paymenttabs').tabs("enable", 2)
            } else if (ui.panel.id == "tabs-3") {
                $('#Paymenttabs').tabs("option", "disabled", []);
            }
        }, 10);
    }
});

Вот рабочий пример: http://jsfiddle.net/Csq6x/

...