0

newGame 関数を実行するのに行き詰まりましたが、何がそれを止めているのかわかりません。

3 つのレベルを持つ選択ボックスがありますが、選択したレベルに到達する newGame 関数を実行するたびに、値が 3 の選択ボックスがある場合でも、常にレベル 1 を返します。

なぜこれが機能しないのかわかりませんか?最も腹立たしいのは、以前はこれが機能していたのに、どういうわけか動作を停止させてしまったことです。どんな助けでも私は感謝しています! コード構造に関する一般的な批判も受け付けています。ありがとう!

    $(document).ready(function(){

    (function (){

        var levelSelected = $('.gameLevel :selected'),
            newGameSelected = $('.start');


        newGameSelected.on('click', function() { abc.newGame(); })

        var abc = {

            level : levelSelected.val(),

            abcArray : ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'],

            createLevel : function(){   
                console.log('test');
            },

            newGame : function (){
                var level = this.level;
                console.log('Doin level #: ' + level);
            }


        }


    })();

    })
4

2 に答える 2

0

この行を配置します

var levelSelected = $('.gameLevel :selected')

中身

newGame : function (){
   var levelSelected = $('.gameLevel :selected');
   var level =levelSelected.val();
   console.log('Doin level #: ' + level);
}
于 2013-08-03T03:00:32.473 に答える
0

$('.gameLevel :selected')問題は、ページがロードされたときだけ取得することです。選択を変更して をクリックして.startも、この選択は更新されません$('.gameLevel :selected').val()これを修正するには、をクリックするたびに を再取得する必要があります.start。このような:

$(document).ready(function(){    
    (function (){
        var newGameSelected = $('.start');
        newGameSelected.on('click', function() { 
                       abc.level = $('.gameLevel :selected').val();
                       abc.newGame(); 
        })
        var abc = {
            abcArray : ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'],
            createLevel : function(){   
                console.log('test');
            },
            newGame : function (){
                var level = this.level;
                console.log('Doin level #: ' + level);
            }
        }
    })();

});

または

$(document).ready(function(){    
        (function (){
            var newGameSelected = $('.start');
            newGameSelected.on('click', function() { 
                           abc.newGame($('.gameLevel :selected').val()); 
            })
            var abc = {
                abcArray : ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'],
                createLevel : function(){   
                    console.log('test');
                },
                newGame : function (level){
                    console.log('Doin level #: ' + level);
                }
            }
        })();
   });
于 2013-08-03T03:05:14.663 に答える