javascript: onClick=“” par rapport à jQuery.Cliquez sur()
J'ai beaucoup de pages avec onClick Événements(chaque page a d'autres éléments à sa propre Événement onClick). Toutes les pages incluses à une main-Page (index.php
)
Donc, je ne peux pas mettre tous les jQuery onClick Événements dans l'en-tête de la page (parce que le <head>
est juste en index.php
, pas dans les pages incluses)
Est-il maintenant de mieux à faire un <script>...</script>
dans chaque page-je? Parce que ce ne serait pas dans le <head>
.
Ou dois-je utiliser le HTML
-attribut onClick=""
?
Les Scripts ne sont pas normalement dans la tête, ils vont juste avant </body>. Si vous ne pouvez pas ajouter un élément de script à chaque page, vous devez repenser votre architecture du code.
OriginalL'auteur Quantm | 2014-02-21
Vous devez vous connecter pour publier un commentaire.
<script>
les balises n'ont pas besoin d'être dans la tête, en fait, le meilleur endroit (de performance) est à droite avant la clôture</body>
. Et oui, vous aussi vous voulez utiliser des fichiers JS autant que possible.En général, vous souhaitez presque toujours d'éviter d'ajouter de nombreux événements, au lieu de cela, vous voulez profiter de la remontée d'événements à l'aide de
jQuery.on
.Un exemple d'utilisation:
Vous HTML ressemblerait à quelque chose comme:
Cela va se lier uniquement un de l'événement, sur le corps. Lorsque vous cliquez sur un élément à l'intérieur du corps, l'événement vont remonter vers le corps, et exécuté que si vous avez cliqué à l'intérieur de ce sélecteur.
Si il n'y a pas
.myselector
sur la page, il va rien faire, alors que ce serait bien.onClick
-Événement. Par Exemple, le bouton 1 envoie le paramètre 'XY' à la fonction quand il fait cliqué sur le bouton 2 envoie paramètre " AB " à la fonction. Est possible de réaliser cela?La tendance générale est que l'aide
data-
attributs sur vos boutons. J'ai mis à jour ma réponse à inclure un exemple.merci pour cet exemple. Qui semble prometteur. Une dernière question à ce sujet. Est-il possible d'avoir plus d'un
data-param
dans un seul élément? Par exemple, si j'ai besoin de plus de paramètres pour une fonction?Oui, vous pouvez en avoir autant que vous voulez, mais, de toute évidence, vous ne pouvez pas nommer le même (ex. vous ne pouvez pas avoir deux
data-param
attributs). Vous voulez sans doute de leur donner des noms significatifs (tels quedata-location
, oudata-action
, etc.), vous pouvez choisir n'importe quel nom que vous voulez. Vous pouvez également utiliser un seuldata-
attribut, et de diviser la valeur par une virgule.OriginalL'auteur Martin Tournoij
Vraiment, JavaScript doit être placé dans des fichiers externes. C'est pour la performance et la facilité de maintenance.
Les performances, car les scripts externes peuvent être mis en cache par le navigateur, en diminuant les temps de chargement.
Maintenabilité parce que vous ne finissent pas avoir à parcourir les massifs HTML, documents pour obtenir un peu de JavaScript.
JavaScript dans HTML, peut également mess avec l'analyseur, vous devez être conscient de.
Si il n'est pas possible d'inclure toutes vos scripts dans des fichiers externes, vous devriez vraiment repenser votre architecture du site, c'est comment il devrait être.
Vous pouvez toujours inclure toutes dans le principal fichier JavaScript, vous auriez juste besoin de lier la
.Click()
événements pour une page en particulier, seulement lorsqu'il est chargé dans l' (après l'appel AJAX est terminée).OriginalL'auteur Kevin
Lire sur
Unobstrusive Javascript
:http://en.wikipedia.org/wiki/Unobtrusive_JavaScript
OriginalL'auteur Hackerman