2016-04-12 5 views
0

Ich habe ein kleines Problem. In meiner Homepage habe ich einen Button. Dieser Button ruft eine Funktion per Onclick auf (onclick = "showhidelogin()").JavaScript schläft nicht an der richtigen Position

die Funktion sieht wie folgt aus:

function showhidelogin() { 
    document.getElementById("null").id = "menu-sticky"; 
    sleep(1000); 
    document.getElementById("loginform").id = "loginformview"; 

} 

Warum die Seite hat als erste warten, und dann die beiden „getElementById“ -Aussagen ausführen? (setTimeout funktioniert nicht auch)

+2

Es gibt keine Funktion Schlaf ist in 'JavaScript'. Benutzt du irgendeine Bibliothek? – Cristy

+0

Können Sie ausführbare Demo/Snippets oder [jsfiddle] (https://jsfiddle.net/) teilen? Was versuchst du zu erreichen? – Rayon

Antwort

0

Es gibt keine sleep Funktion in Javascript. Sie müssen dies unter Verwendung von setTimeout tun.

function showhidelogin() { 
    document.getElementById("null").id = "menu-sticky"; 
    setTimeout(function() { 
     document.getElementById("loginform").id = "loginformview"; 
    }, 1000); 
} 
+3

Ich denke, das OP verwendet nicht setTimeout in der richtigen Weise .. Wie kann setTimeout nicht funktionieren? – Ananth

+0

Nun, unsere Annahmen sollten Teil der Kommentare sein .. OP macht nichts mit dem 'DOM', erwartete Ausgabe scheint anders ... – Rayon

+0

@Ananth Nun, jede Funktion kann verwendet werden, so dass es nicht in der erwarteten Weise funktioniert . Zum Beispiel könnte OP "setTimeout = 'wtf'" am Anfang seines Skripts haben. :) – Cristy

0

Verbesserung der Ananth Antwort (überprüfen, ob die getElementById() Rückkehr etwas):

function showhidelogin() { 
    if(document.getElementById("null")) { 
     document.getElementById("null").id = "menu-sticky"; 
    } 
    setTimeout(function() { 
     if (document.getElementById("loginform")) { 
      document.getElementById("loginform").id = "loginformview"; 
     } 
    }, 1000); 
}