L'exécution de JavaScript lorsque le lien est cliqué
Ce qui est préférable, en supposant que nous ne se soucient pas des gens qui n'ont pas JavaScript activé?
<a href="#" onclick="executeSomething(); return false"></a>
Ou
<a href="javascript:executeSomething()"></a>
Quelle est la différence?
Ou il y a d'autres moyens qui me manque, en plus de la fixation d'un événement à l'ancrage de l'élément avec une bibliothèque JavaScript?
OriginalL'auteur JamesBrownIsDead | 2009-11-20
Vous devez vous connecter pour publier un commentaire.
La bonne chose à propos onclick est que vous pouvez avoir le lien gérer harmonieusement les navigateurs avec le javascript désactivé.
Par exemple, la photo du lien ci-dessous si oui ou non le javascript est activé dans le navigateur:
OriginalL'auteur Rob
il est préférable d'utiliser le onclick parce que c'est la façon dont les choses devraient être.
La
javascript:
était somekind de hackish manière à simuler leonclick
.Aussi je vous conseille de faire quelques Javascript non intrusif autant que possible, il rendre le code plus facile à lire et plus maintenable!
OriginalL'auteur RageZ
href="#"
a un certain nombre de mauvais effets secondaires comme le montre la # dans le navigateur de pied de page que l'URL de destination, et si l'utilisateur a désactivé javascript, il va ajouter un # à la fin de l'URL en cliquant sur le lien.La meilleure méthode à mon humble avis, est de fixer le gestionnaire pour le lien dans votre code, et non pas dans le HTML.
OriginalL'auteur joshperry
C'est essentiellement le modèle que vous souhaitez suivre:
De cette manière:
D'autres ont mentionné jQuery, qui est beaucoup plus robuste et compatible avec tous les navigateurs.
OriginalL'auteur Jeff Meatball Yang
La meilleure pratique serait de séparer totalement de votre javascript de votre marque. Voici un exemple d'utilisation de jQuery.
Je ne sais pas pourquoi c'est la meilleure pratique, semble comme un entretien cauchemar à la recherche .js fichiers à essayer de comprendre ce qui est de la manipulation de tous les liens. En Plus c'est beaucoup de code pour remplacer
onclick="myFunc()"
Je voulais juste un petit exemple de la façon d'appliquer la fonction en javascript. De toute évidence, le cadre ou raw javascript marcherait aussi bien.
parce qu'il maintient votre "code" plutôt que de les répandre dans le balisage. Et, oui, c'est un peu plus de code, mais à l'aide de différents sélecteurs de la même fonction peut être appliquée à de nombreux éléments différents. Si, par exemple, j'ai voulu exécuter une fonction particulière sur tous les éléments link je serais tout simplement avoir à changer le sélecteur et, peut-être, de changer la fonction de prendre le lien en tant que paramètre. C'est encore plus évident lorsque le niveau de complexité augmente.
bon point pour les petits projets, mais je partage également tvanfosson point de vue. Aussi, l'extrait ne doit pas être dans une bibliothèque. J'ai souvent attacher tous mes maîtres-chiens dans le bas de la page, là où d'autres variables sont déclarées et prêt à être utilisé lorsque des événements se produisent... gardant ainsi toutes les fonctions javascript dans le même endroit!
OriginalL'auteur tvanfosson
Oui je suis d'accord pour utiliser onclick et de laisser le href complètement hors de la balise d'ancrage... Ne pas savoir ce que vous préférez faire, mais je tiens à garder le "return false" déclaration de l'intérieur par la fonction en tant que bien.
OriginalL'auteur SimonDever
La principale différence est que:
C'est pourquoi certains gars spécifier au navigateur "hey, interpréter javascript lorsque vous lisez l'attribut href pour ce lien" en faisant
<a href="javascript: ... ;">...</a>
Pour répondre à la question, voilà la différence!
Otoh, que ce les bonnes pratiques à appliquer lors de l'utilisation d'événements javascript est une autre histoire, mais la plupart des points ont été faites par d'autres ici!
Grâce
OriginalL'auteur Mike Gleason jr Couturier