2011-06-20 3 views
2

J'utilise jquery Tools tabs et je souhaite désactiver un onglet particulier (par exemple l'onglet actuel), parfois après qu'il a été initialisé, par ex. sur le bouton cliquez.Onglets jQuery Tools: comment désactiver un onglet

C'est le code que j'ai maintenant, qui fonctionne, mais je me demande s'il existe de meilleures solutions.

Imaginez que j'ai un bouton "désactiver" qui exécute ceci:

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

puis un bouton "activer les onglets" qui fait cela:

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

Le problème est, si je ne me trompe pas, je réinitialise les onglets à chaque fois, au lieu de modifier l'instance existante. Y a-t-il une meilleure solution?

+2

ne sais pas si vous seriez intéressé par un autre plugin, mais [jQueryUI onglets] (http://jqueryui.com/demos/ tabs/# method-disable) a cette fonctionnalité hors de la boîte. –

+0

@David merci pour la suggestion +1. Je vais laisser cette question comme référence pour tous ceux qui pourraient être intéressés par une solution de jQuery Tools. – fortuneRice

Répondre

1

Selon les OUTILS jQuery Tabs Wizard Demo vous pouvez modifier l'événement onBeforeClick et retour faux sur l'onglet que vous souhaitez désactiver.

Voici une copie raccourcie du code de la documentation de l'assistant d'onglets

$("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 
}); 
Questions connexes