Uncaught TypeError Cannot read property 'className' of undefined at showSlides

di il
1 risposte

Uncaught TypeError Cannot read property 'className' of undefined at showSlides

Ciao a tutti
F12 di Chrome, sul sito, mi dà questo errore quando passo il mouse su una foto.
Visivamente il sito funziona bene, ma nonostante questo mi dà questo errore e non capisco perché

Uncaught TypeError Cannot read property 'className' of undefined at showSlides
mi dà problema su dots[slideIndex-1].className += " active";
alla fine di questo codice
Non capisco cosa vuole! Funziona tutto bene, e continua a darmi problemi con questa classe, non capisco proprio cosa vuole!
Mi scrive pure questo quando passo il mouse sulla foto
Violation] Added non-passive event listener to a scroll-blocking 'touchmove' event. Consider marking event handler as 'passive' to make the page more responsive.


.mySlides {display: none}

.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: yellow;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active, .dot:hover {
  background-color: #717171;
}



var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}


function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";  
  }
  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";
}
    

1 Risposte

  • Re: Uncaught TypeError Cannot read property 'className' of undefined at showSlides

    Ciao Melixo,

    Per quanto riguarda il primo errore, dalla piccola porzione di codice che hai inserito, sembra che ci sia uno script che, quando si passa il mouse sopra ad una foto, gli aggiunge una classe "active".
    Esaminiamo l'errore che ti è uscito:
    Uncaught TypeError Cannot read property 'className' of undefined at showSlides
    Ti dice che è uscito un errore di tipo TypeError (questo è un errore correlato al tipo delle variabili) e ti dice che non riesce a leggere la proprietà "className" perché l'oggetto è "undefined".

    Considerando il seguente codice che hai scritto:
    dots[slideIndex-1].className += "active";
    Significa che "dots[slideIndex-1]" non è definito. Ti consiglio di aggiungere un console log appena prima di quella riga per mostrare il contenuto dell'array "dots" e il valore della variabile "slideIndex", per capire quale dei due causa il problema.
Devi accedere o registrarti per scrivere nel forum
1 risposte