0

私は次のコードを持っています。私は JavaScript に比較的慣れていないので、ステージ 1 に進んでいない理由を誰か教えてくれますか?

var textContainer = '#text';
var inputLine = 'input';

var username = null;
var stage = 0;

$(function(){
        if(0 == stage){
            $(function(){
                $(textContainer).text('What is your name?');
                $(inputLine).focus();
                $(inputLine).keypress(function(e){
                    if (e.keyCode == 13 && !e.shiftKey) {
                        e.preventDefault();
                        username = $(this).val();
                        $(this).val('');
                        stage = 1;
                    }
                });
            });
        }
        if(1 == stage){
            $(textContainer).text('Hi there, ' + username + '.');
        }
    });
4

1 に答える 1

1

あなたがそこに持っているものはあまり意味がないので、これがあなたがやろうとしていることだと思います:

$(function(){
     var textContainer = $('#text'),
         inputLine = $('input');

     textContainer.text('What is your name?');
     inputLine.focus().on('keyup', function(e){
        if (e.which === 13) {
            e.preventDefault();
            textContainer.text('Hi there, ' + this.value + '.');
            this.value = "";
        }
    });
});

フィドル

stageゼロに設定された直後にゼロ以外になる方法はありませんか?
イベントハンドラ内で何が起こるか、それは「後で」起こるのでstage、イベントハンドラの後にチェックしてもまだ...待って....ゼロですか?

于 2013-06-08T17:12:03.680 に答える