La réponse de Parrots est la meilleure pour ce cas particulier: si vous utilisez un lien, le href doit pointer vers un emplacement utile pour les utilisateurs non-JavaScript et pour ceux qui ouvrent le lien en utilisant le clic-droit ou le clic-droit ou peu importe.
Si vous n'avez pas de destination pour un lien, vous ne devriez pas vraiment utiliser un lien. Vous pouvez utiliser un span
comme SO (bien que cela nécessite un peu d'aide tabindex et script si vous voulez le rendre correctement compatible avec le clavier) ou, généralement, mieux (si cela ne vous dérange pas le pixel supplémentaire de rembourrage et de mouvement dans IE), un bouton redessiné.
Toutefois, dans le cas général, vous devez parfois inclure des données supplémentaires qui ne tiennent pas dans un attribut existant tel que href
. Parfois, cela peut être dans le id
, mais alors vous êtes un peu limité avec les caractères que vous utilisez. Par exemple, votre code est un code HTML non valide car les identifiants ne peuvent pas commencer par un nombre. Pour les identifiants numériques, vous pouvez essayer id="foo-28"
et extraire le numéro du code.
Ou, vous pouvez commencer à mettre plusieurs paramètres dans les noms de classe (class="foo-28 bar-16a"
) et en utilisant une fonction JS pour diviser, correspondre au préfixe nommé et renvoyer le reste. La plupart des caractères sont autorisés dans un nom de classe, mais bien sûr, vous ne pouvez pas utiliser un autre espace. Vous pouvez également l'encoder d'une manière ou d'une autre dans le className, par exemple le codage URL.
Ou, vous pouvez ajouter un commentaire dans l'élément et utiliser des méthodes DOM pour obtenir l'objet de commentaire et extraire ses données. Vous pouvez mettre JavaScript/JSON à l'intérieur, par exemple .:
<span class="do-something"><!-- {foo: 28, bar: '16a'} --> Something </a>
Ou, vous pouvez utiliser les attributs HTML5 data-
. Ou (... plusieurs autres options ...)
Je ne pense pas qu'il existe un moyen nettement meilleur d'y parvenir, n'est-ce pas que vous avez oublié d'ajouter 'return false;' à votre fonction afin de arrêter l'action de lien par défaut – Harmen
J'ai du mal à comprendre la signification de votre gestionnaire de clic, identifiant, etc. Pouvez-vous éventuellement développer votre question? – Nicole
Oui, maintenant j'ai vu Perroquets répondre à ma méthode semble assez bête :) – meleyal