Utilisation de $('#myDiv').click(function(){
es meilleur car il suit le modèle standard d'enregistrement des événements. (jQuery en interne utilise addEventListener
y attachEvent
).
Fondamentalement, l'enregistrement d'un événement dans méthode moderne est le discret manière de traiter les événements. De plus, pour enregistrer plus d'un écouteur d'événements pour la cible, vous pouvez appeler addEventListener()
pour la même cible.
var myEl = document.getElementById('myelement');
myEl.addEventListener('click', function() {
alert('Hello world');
}, false);
myEl.addEventListener('click', function() {
alert('Hello world again!!!');
}, false);
http://jsfiddle.net/aj55x/1/
Pourquoi utiliser addEventListener ? (De MDN)
addEventListener est la façon d'enregistrer un écouteur d'événement comme spécifié dans le W3C DOM. Ses avantages sont les suivants :
- Il permet d'ajouter plus d'un gestionnaire unique pour un événement. Ceci est particulièrement utile pour les bibliothèques DHTML ou les extensions Mozilla qui doivent doivent fonctionner correctement même si d'autres bibliothèques/extensions sont utilisées.
- Il vous permet de contrôler plus finement la phase d'activation de l'écouteur (capture ou bulle).
- Il fonctionne sur tous les éléments du DOM, et pas seulement sur les éléments HTML.
En savoir plus sur l'inscription à un événement moderne -> http://www.quirksmode.org/js/events_advanced.html
D'autres méthodes, telles que le réglage de la Attributs HTML par exemple :
<button onclick="alert('Hello world!')">
Ou Propriétés des éléments du DOM par exemple :
myEl.onclick = function(event){alert('Hello world');};
sont vieux et peuvent être écrasés facilement.
Attribut HTML doit être évitée car elle rend le balisage plus gros et moins lisible. Les préoccupations relatives au contenu/structure et au comportement ne sont pas bien séparées, ce qui rend un bogue plus difficile à trouver.
Le problème avec le Propriétés des éléments du DOM est qu'un seul gestionnaire d'événement peut être lié à un élément par événement.
En savoir plus sur le traitement traditionnel des événements -> http://www.quirksmode.org/js/events_tradmod.html
Référence MDN : https://developer.mozilla.org/en-US/docs/DOM/event
9 votes
Vous pouvez vous renseigner sur les différentes façons d'attacher des gestionnaires d'événements et sur leurs avantages et inconvénients ici : quirksmode.org/js/introevents.html . jQuery n'est qu'une enveloppe agréable pour l'enregistrement avancé des événements.
13 votes
N'oubliez pas de placer la fonction de clic à l'intérieur de la fonction $(document).ready(function().