2013-06-18 3 views
4

новый для javascript. Я знаю, что это может быть очень просто, но я не могу понять это. Я хочу выполнить функцию. Пауза в середине функции и дождитесь, пока пользователь нажмет клавишу «Ввод», что позволит продолжить функционировать (или вызовет другую функцию для запуска).Функция паузы до нажатия клавиши нажата javascript

function appear() 
{ 
document.getElementById("firstt").style.visibility="visible"; 
//here is where I want the pause to happen until the user presses "enter" key 
//Below is what I want to happen after the "enter" key has been pressed. 
document.getElementById("startrouter").style.visibility="visible"; 


} 
+0

Невозможно сделать. Сожалею. –

+0

Это можно сделать. Просто не в одном методе. Вам придется разбить эту функцию на пару частей и выполнить отложенный код из обработчика события для нажатия клавиши Enter. –

+0

@NickRoth да. Это не «приостанавливает метод», однако ;-) –

ответ

3

Я бы создал глобальную переменную, чтобы увидеть, ожидает ли javascript нажатия клавиши.

В верхней части вашего сценария вы можете добавить

var waitingForEnter = false; 

Затем установите его верно в функции

function appear() 
{ 
    document.getElementById("firstt").style.visibility="visible"; 
    waitingForEnter = true; 
} 

Затем ... добавить прослушиватель для ввода ключа

function keydownHandler(e) { 

    if (e.keyCode == 13 && waitingForEnter) { // 13 is the enter key 
     document.getElementById("startrouter").style.visibility="visible"; 
     waitingForEnter = false; // reset variable 
    } 
} 

// register your handler method for the keydown event 
if (document.addEventListener) { 
    document.addEventListener('keydown', keydownHandler, false); 
} 
else if (document.attachEvent) { 
    document.attachEvent('onkeydown', keydownHandler); 
} 

Надеюсь, это поможет. Это то, что я бы сделал, это не лучший подход.

+1

Вы не похоже, на самом деле используют 'waitingForEnter' –

+1

спасибо, что я забыл его добавить. – Smeegs

+1

И да, я бы предпочел использовать jQuery для привязки обработчика :-) –

1

или мы можем встроить решение из Javalsu и избавиться от глобальной переменной.

function appear(){ 
    document.getElementById("firstt").style.visibility="visible"; 
    //here is where I want the pause to happen until the user presses "enter" key 
    function after(){ 
     //Below is what I want to happen after the "enter" key has been pressed. 
     document.getElementById("startrouter").style.visibility="visible"; 
    } 
    function keydownHandler(e) { 
     if (e.keyCode == 13 && waitingForEnter) { // 13 is the enter key 
      after(); 
     } 
    } 
    // register your handler method for the keydown event 
    if (document.addEventListener) { 
     document.addEventListener('keydown', keydownHandler, false); 
    } 
    else if (document.attachEvent) { 
     document.attachEvent('onkeydown', keydownHandler); 
    } 
} 
Смежные вопросы