2012-03-26 14 views
1

Ich muss mit SetTimeout-Funktion arbeiten, aber diese Funktion funktioniert nicht. Zunächst einmalsetTimeout funktioniert nicht - was ist los?

Player.prototype.playByUrl = function (url) { 
     this.object.data = url; 
     return this.play(); 
    } 

Above-Code ist meine Funktion und ich nenne es

window.onload = function() { 
     player = new Player('playerObject'); 
     setTimeout(player.playByUrl($mp4Link),3000); 
    } 

jedoch in obigem Code nicht SetTimeout nicht funktionieren, warum?

+0

Wo definieren Sie '$ mp4Link'? – Neal

Antwort

5

setTimeout braucht ein function:

setTimeout(function(){player.playByUrl($mp4Link)},3000); 

Die Art und Weise Sie taten es war, dass es player.playByUrl($mp4Link) sofort am Anfang des Skripts ausgeführt wurde.

+0

das ist auch nicht funktionieren: S –

+0

@ MertMETİN Wo definieren Sie '$ mp4Link'? – Neal

1

sollten Sie eine Funktion oder eine Zeichenfolge verwenden:

setTimeout(function(){ 
       player.playByUrl($mp4Link) 
      },3000); 

ODER

setTimeout("player.playByUrl($mp4Link)",3000); 
+1

Mit einem String ist ** nicht ** immer die beste Route ... – Neal

+0

Sicher aber funktioniert ... –

+1

Ja, aber es ermutigt die Verwendung von 'eval' .... – Neal

1

ich mit setTimeout ein Problem hatte(), wo die Funktion in Anführungszeichen sein muß. Versuchen:

window.onload = function() { 
    player = new Player('playerObject'); 
    setTimeout("player.playByUrl($mp4Link)",3000); 
}