Maison >interface Web >tutoriel CSS >Pourquoi ma fonction « animer » fonctionne-t-elle dans IE mais pas dans Chrome : un problème d'observation JavaScript ?
function animate() { var div = document.getElementById('demo'); div.style.left = "200px"; div.style.color = "red"; }
#demo { position: absolute; }
<p>
window.animate // global function Element.prototype.animate // element's own method<p>Selon les spécifications DOM, l'environnement global du gestionnaire d'événements masque la portée de l'élément lors de la gestion des événements. Ainsi, la méthode 'animer' de l'élément prime sur la fonction globale 'animer'.
10. Let the current event handler value be the result of the following steps: ... 4. Let the target environment be the lexical environment scope. ... 6. If the element is non-null, then a. Let the target environment be the result of NewObjectEnvironment(the element, the target environment).<p>Pour remédier à cela, on peut employer plusieurs approches :
function animate__() { var div = document.getElementById('demo'); div.style.left = "200px"; div.style.color = "red"; }
document.getElementById('demo').addEventListener('click', animate.bind(document.getElementById('demo')));
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!