2010-11-22 7 views
0

Hey j'ai le code que les fils les onglets de la fonction Prêt pour les onglets JQuery UI simplar àJQuery UI onglets: Cookie persistence avec plusieurs onglets

// wireup tabs 
$(".tabs").tabs({ 
    cookie: { 
     expires: 30 
    } 
}); 

Cela fonctionne très bien, sauf que l'index de tabulation est conservée dans tous les emplacements d'onglets (puisque j'utilise le sélecteur .tabs pour câbler tous mes onglets à la fois). Est-il possible de câbler automatiquement le nom du cookie pour qu'il soit différent pour chaque élément trouvé correspondant au sélecteur?

Répondre

5

$ (ce) fait référence au document lors de l'exécution de ce dans la situation ci-dessus. Cependant, exécuter le wireup dans une fonction each, permet d'accéder directement à l'élément et ensuite nous pouvons accéder aux attributs (comme un attribut spécial dans le HTML pour câbler les cookies). J'ai utilisé l'identifiant de tabulation, puis je l'ai renommé par défaut si l'attribut n'existe pas.

// wireup tabs 
$(".tabs").each(function() { 
    var tabid = $(this).attr("tabid"); 
    if (tabid == undefined || tabid == null || tabid == "") { 
     $(this).tabs({ 
      cookie: { 
       expires: 30 
      } 
     }); 
    } 
    else { 
     $(this).tabs({ 
      cookie: { 
       expires: 30, 
       name: tabid 
      } 
     }); 
    } 
}); 
3

Essayez d'ajouter un nom pour chaque jeu:

$(".tabset1").tabs({ 
    cookie: { 
     expires: 30, 
     name: "tabset1" 
    } 
}); 

$(".tabset2").tabs({ 
    cookie: { 
     expires: 30, 
     name: "tabset2" 
    } 
}); 
+1

Y a-t-il un moyen de le faire sans devoir coder chaque onglet comme un nouveau jeu de caractères? $ (This) aurait-il un contexte différent pour chaque ensemble d'options? –