11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis à la recherche d'une méthode "propre" pour uniformiser mon code.

J'aimerais votre avis sur la meilleure façon pour lancer une lightbox:

Méthode 1:


$(document).ready(function() {
   $(".lightbox").colorbox({
      iframe: true,
      width: "80%",
      height: "80%"
   });
});



<p>
   <a href="index.cfm/event=phototheque" class="lightbox">
      PHOTOTHEQUE
   </a>
</p>


Méthode 2:


$(document).ready(function() {
   $(a[rel="lightbox"]).colorbox({
      iframe: true,
      width: "80%",
      height: "80%"
   });
});




<p>
   <a href="index.cfm/event=phototheque" rel="lightbox">
      PHOTOTHEQUE
   </a>
</p>


Méthode 3:


$(document).ready(function() {
   $("#lightbox").colorbox({
      iframe: true,
      width: "80%",
      height: "80%"
   });
});



<p>
   <a href="index.cfm/event=phototheque" id="lightbox">
      PHOTOTHEQUE
   </a>
</p>


Pour résumer, faut-il se baser sur l'attribut class, rel ou id pour lancer une lightbox à partir de la balise <a> ?

Pour rappel, W3C...
a écrit :

rel = types-de-lien [CI]
Cet attribut décrit la relation partant du document courant vers l'ancre spécifiée par l'attribut href. La valeur de cet attribut est une liste de types de lien séparés par des espaces.

id = nom [CS]
Cet attribut assigne un nom à un élément. Ce nom doit être unique dans le document.

class = liste-de-valeurs-cdata [CS]
Cet attribut assigne un nom de classe, ou un ensemble de noms de classe, à un élément. Un nombre quelconque d'éléments peut se voir assigner les mêmes nom de classe ou noms. Les noms de classe multiples doivent être séparés par des caractères blancs.


Merci à tous de justifier vos réponses.

Bon début d'après midi.

Ben Nadel
Modifié par creep (12 Oct 2010 - 12:33)
Ok mais pourquoi ? Est-ce parce que tout le monde fait ainsi ?

Je pense qu'un sélecteur jquery type class $(".lightbox") est beaucoup plus consommateur en terme de recherche dans le DOM qu'un attribut rel. $(a["rel=lightbox") (très peu présent sur une page web)

Je me trompe ?