web-dev-qa-db-fra.com

JS ForEach Loops dans IE11

J'ai des problèmes à faire en sorte qu'une boucle JS fonctionne sur 4 éléments sur une page dans IE11. Je veux que la fonction hideImg soit exécutée au survol de la souris sur l'élément survolé.

Voici mon code:

elements.forEach( function(element) {
    element.addEventListener('mouseover', hideImg);
});

Je pense avoir constaté que les boucles forEach ne sont pas prises en charge dans IE. Comment puis-je le convertir facilement en une boucle for en JS simple?

Sincères amitiés,
Steve

5
Steve Walker

Il suffit de suivre la programmation de base

var elements = document.getElementsByClassName("test");
for (var i = 0; i < elements.length; i++) {
  elements[i].addEventListener('mouseover', hideImg);
}

function hideImg() {
  console.log("hideImg called")
}
.test {
  width: 40px;
  height: 20px;
  border: green solid 1px;
}
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>

7
Nemani

Ce code corrigera votre problème dans IE 11.

Array.prototype.slice.call(elements).forEach( function(element) {
    element.addEventListener('mouseover', hideImg);
});
0
Shailendra Dobhal