2017-10-01 6 views
1

J'utilise un script à partir du curseur WOW (version gratuite), qui est la suivante:Slide show javascript erreur

var slideIndex = 0; 
    function showSlides() { 
     var i; 
     slides = document.getElementsByClassName("mySlides"); 
     dots = document.getElementsByClassName("dot"); 
     for (i = 0; i < slides.length; i++) { 
      slides[i].style.display = "none"; 
     } 
     slideIndex++; 
     if (slideIndex > slides.length) {slideIndex = 1}  
     for (i = 0; i < dots.length; i++) { 
      dots[i].className = dots[i].className.replace(" active", ""); 
     } 
     slides[slideIndex-1].style.display = "block"; 
     dots[slideIndex-1].className += " active"; 
     setTimeout(showSlides, 3000); // Change image every 2 seconds 
    } 
    showSlides(); 

Il semble fonctionner OK, mais quand je fais un contrôle de référencement sur la page il est dit il y a une erreur Javascript dans la ligne:

slides[slideIndex-1].style.display = "block"; 

le message spécifique est:

"Uncaught TypeError: Cannot read property 'style' of undefined".

Cela semble dire que 0.123.est indéfini, mais il semble être défini dans les déclarations de variable. Je suis un peu un débutant avec Javascript et j'apprécierais donc toute aide avec ceci. Je suis un débutant avec Javascript. Merci d'avance.

+0

Je pense que la méthode showSlides est appelée avant que votre liste html 'mySlides' soit chargée. Appelez la méthode showSlides à partir de window.onload. –

+0

Pourriez-vous également soutenir l'exemple html? –

+0

Je cours votre code exactement comme vous l'avez écrit avec 4 divs class mySlides et 4 divs class dot et je n'ai aucune erreur dans ma console – liontass

Répondre

0

Dans le cas où quelqu'un est intéressé, j'ai résolu le problème en commentant deux lignes de code. D'abord j'ai sorti la ligne en question! Quand j'ai vérifié toutes les feuilles de style, etc., il n'y avait pas de classe identifiée comme "MySlides", donc j'ai pensé que c'est la raison pour laquelle le message d'erreur était généré. Après avoir sorti cette ligne, le message d'erreur a ensuite été référencé sur la ligne suivante, que j'ai également retirée, puis, sans erreurs générées, le diaporama fonctionne parfaitement à tous les niveaux! Donc, peut-être ce sont deux lignes de code redondant accidentellement laissées par le programmeur d'origine! Je dois admettre que je ne peux pas voir comment cela fonctionne, mais c'est le cas!