Variablen in JavaScript
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
code
dank
deklaration
fehler
frage
funktion
hilfe
idee
musik
objekt
pos
problem
rechner
url
video
zeitpunkt
-
Hallo,
ich wollte für mein NAS eine kleine Seite schreiben, auf der meine Videos und Musik abgespielt werden können. Soweit klapp auch alles ganz gut bis auf das:
function play_all(){ var i = 0; for(i = 0; i < videos.length; i++){ p = i+1; videos.get(i).onended = function(event){ playNext(p); } } videos.get(0).play(); } function playNext(pos){ alert(pos); videos[pos].play(); }
Die Videos werden per jQuery geholt und alert(pos) gibt immer 5 an (Ich habe genau 5 Videos, d.h. es gibt einen IndexOutOfBounce-Fehler). Ich weiß jetzt bloß nicht wie ich i+1 rechner, so dass i dem i zum Zeitpunkt der deklaration entspricht.
Ich hoffe ich konnte euch mein Problem Begreifbar machen. Wenn ihr Fragen habt immer her damit und schon mal Danke für die Hilfe -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Warum nicht so
var i = 0; var j = i; for(i = 0; i < videos.length; i++){ videos.get(i).onended = function(event){ playNext(j+1); } } videos.get(0).play(); } function playNext(pos){ alert(pos); videos[pos].play();
oder hab ich was falsch verstanden -
w3j schrieb:
Warum nicht so
var i = 0; var j = i; for(i = 0; i < videos.length; i++){ videos.get(i).onended = function(event){ playNext(j+1); } } videos.get(0).play(); } function playNext(pos){ alert(pos); videos[pos].play();
oder hab ich was falsch verstanden
Danke für die Idee auch wenn es so nicht funktioniert hat. Die Funktion playNext(pos) soll mit den pos {0, 1, 2, 3, 4} aufgerufen werden. Da JavaScript aber anscheinend die Variablen als Objekt und nicht als Wert übergibt war der Fehler, dass ich i incrementiert habe. Ich habs jetzt rekursiv gelöst.
function play_all(){ videos.get(0).onended = function(event){ playNext(1, true); } videos[0].play(); } function playNext(pos, p_next){ if(p_next && pos < videos.length){ videos.get(pos).onended = function(event){ playNext(pos+1, true); } } videos[pos].play(); }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage