Je suis fatigué d'écrire jQuery, alors je décide d'apprendre du JavaScript brut. Quelque chose dans l'attachement de l'IE est confondu moi. Voici le code.
var btn = document.getElementById('myBtn'); btn.onclick = function(){ alert(window.event.srcElement === this); //true, I know why. }; btn.attachEvent('onclick', function(event){ alert(event.srcElement === this); //fasle, but why? });
3 Réponses :
Il s'agit d'une référence contextuelle et est une fenêtre de référence lorsque l'événement de clic se produit, car c'est le seul contexte qui existe à ce moment-là. p>
Je pense que vous mites votre mot.
btn.attachEvent('onclick', function(event){ alert(event.**srcElement** === this); });
Dans un gestionnaire d'événements liés par la méthode CODE CODE> SPÉCIFIQUE, SPECT> Ceci CODE> fait référence à la fenêtre Global Fenêtre Code> Objet:
btn.attachEvent('onclick', function(event) {
alert(this === window); // true
}
Essayez de sortir
ceci code> à la console et voyez. Utilisez
console.log (this) code>
J'essaie ça, mais c'est-à-dire juste me dire que c'est un objet, rien de plus.
Avez-vous repéré la typo "Srcelemnt"? Sans le "e" que la propriété d'événement ne sera indéfinie (et! == cela).
Juste une faute de frappe, return.