1 votes

Est-ce une utilisation correcte de jQuery ?

J'ai créé un affichage par onglets avec html/css. Je veux simplement utiliser jQuery pour basculer les onglets/classes. Cela fonctionne parfaitement mais je veux m'assurer d'utiliser jQuery correctement.

Voici la structure html + jQuery :

Onglet 1
Onglet 2

Le jQuery que vous voyez pour l'onglet 1 est répété pour chaque onglet.

9voto

Edwin V. Points 777

Vous devriez utiliser une approche plus générique pour définir le comportement des onglets:

$('#tabs a').click(function(){
    $("#tabcontent > div").hide();
    $("#"+this.id+"content").show();
    $("#tabs > li a").removeClass().addClass("inactivetab");
    $(this).removeClass().addClass("activetab");
});

Avec ce code, il est possible d'ajouter d'autres onglets sans avoir besoin d'ajouter un nouveau code JavaScript. Les informations dans l'attribut id de la balise a sont utilisées pour déterminer le panneau de contenu à afficher.

8voto

Larry Lustig Points 28706

Vous n'avez pas besoin de répéter le code pour chaque onglet. Au lieu de cela, écrivez une seule fonction qui s'applique à tous les onglets (en trouvant les nœuds parent et enfant en utilisant des sélections jQuery) et liez cette unique fonction aux gestionnaires de clics des onglets (vous aurez besoin d'une nouvelle classe pour identifier quels éléments sont des onglets).

3voto

Milan Babuškov Points 20423
Le code jQuery que vous voyez pour l'onglet 1 est répété pour chaque onglet.

Je préférerais opter pour une solution générique. Utilisez la classe "tab" pour tous les onglets, écrivez un gestionnaire de clics pour cela. Utilisez $(this) pour faire référence à ce qui a été cliqué.

3voto

John Fisher Points 13621

Vous devriez être capable d'écrire une seule fonction, qui peut être appelée pour chaque onglet. Ou, vous pouvez faire quelque chose comme ceci :

$("#tab1, #tab2").click(function() {
  var tab = $(this);
  var tabContent = $('#' + tab.attr('id') + 'content');
  // etc.
});

2voto

Russ Cam Points 58168

Le jQuery semble correct, mais vous pourriez le généraliser pour qu'il fonctionne avec un nombre n de onglets.

De plus, ajouter une classe pour les onglets inactifs est probablement redondant car si un onglet n'a pas la classe active, alors il peut être considéré comme inactif.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X