2009-09-17 6 views
4

Je Configurons quelques onglets jQuery pour commencer sans onglets sélectionnés comme ceci:difficulté à décochant tous les onglets jquery

$('#tabs').tabs({ selected: -1 }); 

Puis j'ai aussi un lien distinct lorsqu'il est pressé besoins pour désélectionner tous les onglets.

$("#deselectButton").click(function(){  
    $('#tabs').tabs('select' , -1) 
}); 

ou

$("#deselectButton").click(function(){  
    $('#tabs').tabs('selected' , -1) 
}); 

Le clic deselectButton ne décochez le contenu des onglets, mais le titre des onglets reste actif avec la classe 'ui-tabs-sélectionnés ui-state-actif'.

Quelle est la manière correcte de désélectionner tous les onglets?

Répondre

6

Essayez ce code:

$("#deselectButton").click(function(){   
    $('#tabs').tabs('selected' , -1) 
    $(".ui-tabs-selected").removeClass("ui-state-active").removeClass("ui-tabs-selected"); 
}); 
+0

Oui qui l'a fait, je vous remercie $ ("ui-onglets sélectionnés "). RemoveClass (" ui-état-actif "). RemoveClass (" ui-onglets sélectionnés"). AddClass ("ui-state-default"); –

+0

Fonctionne bien, mais ne sait pas pourquoi le plugin ignore le second bit par défaut (?). Le dernier bit peut être condensé en: '$ ('# tabs'). Find ('. Ui-tabs-selected'). RemoveClass ('ui-state-active ui-tabs-selected');' – nickb

2

Si vous utilisez la version jQuery UI 1.9+ alors le code CSS a changé:

$('#tabs').tabs('option', 'active', false); 

ou:

$('.ui-tabs-active').removeClass('ui-tabs-active ui-state-active'); 

comme par commentaires ci-dessous. Merci

+0

Simpler: $ ('# tabs'). tabs ('option', 'active', false); – Srisa

+1

À compter de la version 1.10, la première solution ne fonctionne pas. Le deuxième fait quand même. –

2

jQuery 1.10 requiert que le option réductible soit défini sur true.

$('#tabs').tabs('option', 'collapsible', true); 
$('#tabs').tabs('option', 'active', false); 
Questions connexes