2016-04-12 3 views
0

У меня есть небольшая проблема. На моей домашней странице у меня есть кнопка. Эта кнопка вызывает функцию oncick (onclick = "showhidelogin()").JavaScript не спит в нужном положении

функция выглядит следующим образом:

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

} 

Почему страница ждать, как первое, а затем выполнить два «getElementById» -Statements? (комплектTimeout не работает тоже)

+2

Там нет функции сна в 'JavaScript'. Вы используете какую-либо библиотеку? – Cristy

+0

Можете ли вы поделиться исполняемым демо/фрагментом или [jsfiddle] (https://jsfiddle.net/)? Чего вы пытаетесь достичь? – Rayon

ответ

0

Нет функции sleep в Javascript. Вы должны сделать это, используя setTimeout.

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

Я думаю, что OP не использует setTimeout в правильном направлении .. как может setTimeout не работать? – Ananth

+0

Ну, наши предположения должны быть частью комментариев .. OP ничего не делает с 'DOM', ожидаемый результат кажется другим ... – Rayon

+0

@Ananth Ну, любая функция может использоваться так, чтобы она не работала ожидаемым образом , Например, OP может иметь 'setTimeout = 'wtf'' в начале своего скрипта. :) – Cristy

0

Улучшение ответа Ananth в (проверьте, если getElementById() возвращение что-то):

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