J'utilise le plugin jQuery UI 1.8.5 tabs, avec repliable: true configuration. Je dois appeler une fonction après la réduction d'une tabulation pour ajouter une classe CSS. Est-ce que quelqu'un sait comment?Onglets de l'interface utilisateur jQuery, sélectionner/désélectionner (réduire) les événements
1
A
Répondre
1
Vous pouvez vérifier si la classe ui-tabs-selected
existe en cliquant dessus. En supposant que vous utilisez le balisage standard:
// in your click event
var selected_exists = $('#yourTabBox')
.children('ul.ui-tabs-nav')
.children('li.ui-tabs-selected')
.length;
if (selected_exists) {
// Nothing is collapsed
} else {
// collapsed
}
C'est parfait pour l'événement select
.
1
Qu'en est-il le show event ne fonctionnera pas pour cela? Parce que vous ne savez pas lequel était caché?
Peut-être même le select event pourrait être ce que vous voulez.
en utilisant l'événement 'tabsselect':
$(".selector").tabs({
collapsible: true,
select: function(event, ui)
{
var prevSelectedIndex = $(".selector").tabs('option', 'selected');
var nextSelectedIndex = ui.index;
if(prevSelectedIndex === -1)
{
// It was previously collapsed and the user is now opening
// tab at index: nextSelectedIndex
}
else if(prevSelectedIndex === nextSelectedIndex)
{
// The user has clicked on the currently opened
// tab and it is collapsing
}
}
});
+1
Je suis tombé sur ce problème et j'ai utilisé votre réponse. J'ai ajouté un extrait de code pour montrer comment je l'ai utilisé pour référence future. –
@Stephen ... pense qu'il pourrait nous montrer ce qu'il a essayé ou quelque chose? ';)' ... ça serait bien de savoir ce qu'il se bat hein? – jcolebrand
@drachenstern: D'accord. Si ce que nous avons décrit ne fonctionne pas, nous aurons besoin de voir quelques exemples de ce qui a été essayé, ainsi que des balises. – Stephen
Bonne réponse (+1 s'il me reste des votes!). Juste pour noter que dans l'événement 'select',' this' est un élément div externe, donc votre code pourrait être réduit à $ (this) .children ('ul.ui-tabs-nav> li.ui-tabs-selected ') .length'. Légèrement plus rapide et plus flexible. – lonesomeday