0

フィドル

HTML/CSS コードは問題と無関係であり、ほとんどの JavaScript コードも同様です。

line 51JavaScript では、 or のいずれかがconsole.log(mode);表示されることを期待していましたが、代わりに. 私の唯一の推測は、内部のコードが機能する前に値が記録されたということです。12undefined$pregame.on('click', 'button', function () { ...

上のコードの後に​​実行中のコードを作成するにはどうすればよい// ------------ game code ------------ですか? どのようなオプションがありますか?


jQueryコード

(function($) {
    var $pregame = $('div#pregame');
    var $notifier = $('div#notifier')
    var $game = $('div#game');
    var mode;


    for (var i = 0; i < 8; i++) {
        $game.append($('div.frame').eq(0).clone());
    }

    var $frame = $game.find('div.frame');

    $(window).on('resize', function() {
        var windowW = window.innerWidth, windowH = window.innerHeight;
        var gameLen = windowW < windowH * 0.9 ? windowW : windowH * .9;
        $game.css({
            'width':  gameLen + 'px',
            'height': gameLen + 'px'
        });
    }).trigger('resize');

    $pregame.on('click', 'button', function () {

        if ( $(this).data('mode') === 1 ) {
            mode = 1;
        } else {
            var $divs = $notifier.children('div');
            $divs.eq(0).text('Player 1').end().eq(3).text('Player 2');
            mode = 2;
        }

        $pregame.fadeOut(500, function () {
            $game.fadeIn(500);
            $notifier.css('display', 'table').animate({'opacity': 1}, 500);
        });

        $pregame.off('click');
    });

    // ------------ game code ------------

        var activeFrame = 4, gameArray = [];
        for (var i = 0; i < 9; i++) {
            gameArray.push(['-','-','-','-','-','-','-','-','-']);
        }
        console.log(mode); // <<----- THIS HERE <<---------
        if ( mode === 1 ) {
            $('body').on('click', 'div.frame', function() {
                var index = $frame.index(this);
                if ( index === activeFrame ) console.log('click on active Frame');
            });
        } else if ( mode === 2 ) {

        }

})(jQuery);
4

2 に答える 2

0

modeゲーム前のボタンをクリックするまで定義されていない場所にあり、行でモードを評価するまでには呼び出されません51

});1 つの解決策は、オンライン42をラインに移動すること60です。このように、クリックするまでゲームコード セクションも実行されません。

于 2013-06-19T11:37:27.347 に答える