2016-03-18 5 views
0

Ich versuche, ein Stück Code zu machen, der eine Nachricht angezeigt wird, wenn nichts in ein Textfeld eingegeben wird, und verschwinden dann (ich kann es verblassen anstatt einfach verschwinden aber gehen lassen bevor wir laufen können ...).Timeout nicht passiert - Simple Javascript

Was ich bisher getan haben sieht aus, als so:

<div id="msg"></div> 

<script> 
var x = document.getElementById("msg"); 
    x.innerHTML = "Enter a video URL"; 
    setTimeout(function() { 
     x.innerHTML = ""); 
    }, 1000); 
</script> 

es scheint, die Timeout-Funktion nicht arbeitet, wie wenn ich ersetzen:

setTimeout(function() { 
    x.innerHTML = ""); 
}, 1000); 

mit

setTimeout(function() { 
    x.innerHTML = "A"); 
}, 1000); 

Das A erscheint sofort, was darauf hinweist, dass die Zeichenfolge "video eingeben" nicht ausgeführt wird und der Browser direkt zum st springt Ich möchte angehalten werden.

+0

könnten Sie bitte es in einer Geige reproduzieren oder so .. – Lal

+2

Typo 'x.innerHTML = "")' sollte 'x sein. innerHTML = "" ' – Hacketo

+0

Da Sie in all Ihren Beispielen Syntaxfehler haben, wird keiner von ihnen tatsächlich funktionieren. Wenn Sie den Syntaxfehler beheben, wird es funktionieren: https://jsfiddle.net/ae83cvc4/. –

Antwort

0

Mit diesem sollte es tun. Sie hatte ein paar Fehler ..

setTimeout(function() { 
    x.innerHTML = "A"; 
}, 1000); 

edit: nicht bemerkt, es war nicht jQuery, so geändert, dass meine Antwort ...

+0

DOM-Elemente haben keine 'html'-Methode. –

+0

Funktioniert nicht, die Nachricht bleibt jetzt nur auf dem Bildschirm, die Funktion setTimeout hatte keine Auswirkungen auf den Text innerhalb der div –

+0

Entschuldigung, gebohrt in meinem Kopf für mich zu verwenden jQuery – Hazonko

1

Sie haben ein Fehl abgestimmt Klammern in Ihrem timeout:

<div id="msg">start</div> 

JS:

var x = document.getElementById("msg"); 
x.innerHTML = "Enter a video URL"; 
setTimeout(function() { 
      x.innerHTML = "end"; 
}, 1000); 
0

Die Signatur ist setTimeout(func,delay)

So müssen Sie einfach Ihre Tippfehler in der Funktion beheben, wie:

setTimeout(function() { 
    x.innerHTML = "SOME_VALUE"; 
}, 1000);