Действия по нажатию клавиш, одно за другим.(Jquery: диалоговое окно RPG) - PullRequest
0 голосов
/ 22 октября 2018

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

  1. Когда я нажимаю ввод, я хочу, чтобы появился текст 1.
  2. Я нажимаю ввод еще раз, чтобы отобразить текст2 и т. Д., Возможно, до 7 текстов.

Если я нажму enter, я сразу получу text2, что очевидно, и я не знаю, как это выяснить.

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

Спасибо всем!

var i = 0;
$(document).keypress(function(e) {
    if(e.which == 13 && i == 0) {
    	$( ".text" ).empty();
        $( ".text" ).append( "Text1" );
        i++;
    }
});
$(document).keypress(function(e) {
    if(e.which == 13 && i == 1) {
    	$( ".text" ).empty();
        $( ".text" ).append( "Text2" );
        i++;
    }
});

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Я думаю, это может приблизить вас.Создайте массив текстовых сообщений, которые вы хотите отобразить (var text).Затем при вводе нажмите клавишу итерации по сообщениям, пока не закончится.Проверьте, не закончили ли вы, используя трюк ol 'typeof! ==' undefined '.

Возможно, есть более элегантный ответ, но я думаю, что он довольно простой и понятный.

<div class="text></div>

<script>
    var i = 0;
    var text = ['text1','text2','text3'];
    $(document).keypress(function(e) {
        if(e.which == 13 && typeof(text[i]) !== 'undefined') {
            $( ".text" ).append( '<p>' + text[i] + '</p>' );
            i++;
        }
    });
</script>
0 голосов
/ 22 октября 2018

Не добавляйте событие нажатия клавиши несколько раз, используйте свою логику переменной i внутри функции обратного вызова события, например:

Кроме того, если вы просто хотите очистить текст при каждой оценке i, выможно просто использовать .text() для установки текста элементов вместо его очистки и добавления ...

var i = 0;
$(document).keypress(function(e) {
    if(e.which == 13) {
        switch(i){
            case 0:
               $( ".text" ).empty();
               $( ".text" ).append( "Text1" );

               //Could do it in one line like:
               //$(".text" ).text("Text1");
               break;
           case 1:
               $( ".text" ).empty();
               $( ".text" ).append( "Text2" );
               break;
           etc....
        }

        i++;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...