wie verhindere ich das beim Onclick die Funktionen mehrmals ausgeführt wird?

Iskue

Mitglied
Moin leute :)

hab da mal eine Frage und zwar stecke ich grad im JavaScript kurs und habe eine Hausaufgabe bekommen.

Zurzeit basteln wir an so einer Mini Galerie und haben das Problem dass die Onclick Funktion sich überlappt sobald man den button zum automatischen abspiel der bilder mehrmals klickt.....kann man dieses unterbinden? sprich das die onclick aktion nur einmal aktiv wird?

hoffe ihr versteht was ich mein ;-)

LG
 
Einen Merker führen, wo gespeichert wird, ob das Autoplay schon aktiv ist:
Code:
var autoPlay = false:

// und im Klick-Handler:

if (!autoPlay) {
    autoPlay = true:
    // Autoplay einschalten
}
 
setzte ich diese in die function von dem dazughörigen onclick?
arbeite auch mit einer externen js datei falls relevant
 
Die Definition der Variablen muss global sein, d. h. außerhalb der Funktion, die den Klick behandelt. und der Code unter "// und im Klick-Handler" muss in die Funktion.
 
Code:
//variablen
var bilder = ['new-1045954_1920.jpg','sparrow-50346_1920.jpg','sparrow-73307_1280.jpg','sparrow-204399_1920.jpg','zebra-finch-1676642_1920.jpg'];
var bildpfad = "img/";
var zaehler = 0;
var running = 0;

var autoPlay = false;

   //funktionsdefinition
   function vor() {
      
       if(zaehler >= bilder.length){
           zaehler= 0;
          
       }
      
          
       var bild = bildpfad + bilder[zaehler];          
       document.getElementById('leinwand').src = bild;      
       zaehler++;          
  
       document.getElementById('zaehlerAnzeige').innerHTML =zaehler;
   }
  
  
       function zuruck() {
       zaehler--;          
  
       if(zaehler < 0 ){
           zaehler= bilder.length-1;      
       }
          
       var bild = bildpfad + bilder[zaehler];          
       document.getElementById('leinwand').src = bild;  
       document.getElementById('zaehlerAnzeige').innerHTML =zaehler;      
      
   }
  
  
   function vonSelbst() {
      
  
       setTimeout(vor,500);     
       start = setInterval(vor,2000);      
  
   if (!autoPlay) {
    autoPlay = true;
    // Autoplay einschalten
   }
      
      
      
   }
  
   
   function stop() {
      
       window.clearInterval(start);
   }

hier mal mein js-code irgendwie funktioniert das nicht mit dem autoPlay....
 

Neue Beiträge

Zurück