Вкладки инструментов jQuery: как отключить вкладку

Я использую вкладки jquery Tools и хотел бы иногда отключить определенную вкладку (например, текущую вкладку). после его инициализации, например при нажатии кнопки.

Это код, который у меня есть сейчас, и он работает, но мне интересно, есть ли лучшие решения.

Представьте, что у меня есть кнопка «отключить», которая запускает это:

//disable all tabs except for current tab
$("ul.tabs").tabs("div.panes > div", function(ev,index){
    if (index != this.getIndex()){
        return false;
    }
})

а затем кнопка «включить вкладки», которая делает это:

$("ul.tabs").tabs("div.panes > div") //enables all tabs (by not disabling any)

Проблема в том, если я не ошибаюсь, что я каждый раз повторно инициализирую вкладки вместо того, чтобы изменять исходный существующий экземпляр. Есть ли лучшее решение?


person fortuneRice    schedule 20.06.2011    source источник
comment
не уверен, что вам будет интересен другой плагин, но у вкладки jqueryui есть этот функционал из коробки.   -  person David Wick    schedule 20.06.2011
comment
@David спасибо за предложение +1. Я оставлю этот вопрос в качестве справочного материала для всех, кто, тем не менее, может быть заинтересован в решении инструментов jQuery.   -  person fortuneRice    schedule 20.06.2011


Ответы (1)


В соответствии с демонстрацией мастера вкладок jQuery TOOLS, вы можете изменить onBeforeClick< /em> и верните false на вкладке, которую вы хотите отключить.

Вот сокращенная копия кода из документации мастера вкладок

$("ul.tabs").tabs("div.panes > div", function(event, index) {
    /* now we are inside the onBeforeClick event */
    if (index == 1 OR index == MYDISABLEDTAB)  {
        // when false is returned, tab cannot be activated
        return false;
    }

    // everything ok
});
person domi27    schedule 27.11.2011