7
votes

Qu'est-ce que "cela" dans l'Attachevent d'IE

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?
});


4 commentaires

Essayez de sortir ceci à la console et voyez. Utilisez console.log (this)


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.


3 Réponses :


0
votes

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à.


0 commentaires

0
votes

Je pense que vous mites votre mot.


    btn.attachEvent('onclick', function(event){
            alert(event.**srcElement** === this);
    });


0 commentaires

7
votes

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
}


0 commentaires