Javascript Can';t第二次读取未定义的属性
我在制作纸牌游戏时遇到了一些问题 我正在处理剩余的牌组,点击后会显示剩余的牌组,所以玩家可以在点击牌组的同时循环使用它们 问题本身:当您单击deck时,代码生成一个图片文件名,其中包含来自2个不同数组的参数 第一次单击后,卡将显示,没有任何错误,但当尝试第二次单击时,会出现错误:“无法读取未定义的属性'Taskai' 代码:Javascript Can';t第二次读取未定义的属性,javascript,jquery,arrays,jquery-ui,Javascript,Jquery,Arrays,Jquery Ui,我在制作纸牌游戏时遇到了一些问题 我正在处理剩余的牌组,点击后会显示剩余的牌组,所以玩家可以在点击牌组的同时循环使用它们 问题本身:当您单击deck时,代码生成一个图片文件名,其中包含来自2个不同数组的参数 第一次单击后,卡将显示,没有任何错误,但当尝试第二次单击时,会出现错误:“无法读取未定义的属性'Taskai' 代码: $.widget(“Game.remaingdeck”{ 选项:{ 剩余甲板:[] }, _创建:函数(){ var博弈=此; game.flipACard(); }, f
$.widget(“Game.remaingdeck”{
选项:{
剩余甲板:[]
},
_创建:函数(){
var博弈=此;
game.flipACard();
},
flipACard:函数(){
var i=0;
var博弈=此;
$(“#remDeck”)。单击(函数(){
var remainDeck=game.options.remainingDeck;
var remDeck=$(“#remDeck”);
var oppenedCard=$(“#openCard”);
var卡=$('');
var imageName=remainDeck[i].Taskai+''u of_'+remainDeck[i].Simbolis+'.png';
var imagePath='texture/'+imageName;
css('background-image','url('+imagePath+');
如果(i=game.options.remainingDeck.lenght){
aler(“kaladëprasieda iðnaujo”);
}
i++;
对方卡片追加(卡片);
});
}
})
i
需要是外部变量,否则每次单击处理程序运行时它都是0
另外,我认为不应该在.flipcard()
中附加单击处理程序,否则每次运行flipcard()
时,它都会被反复附加。尝试在.create()
中附加单击处理程序
$.widget(“Game.remaingdeck”{
选项:{
剩余甲板:[]
},
_创建:函数(){
var博弈=此;
var i=0;
$(“#remDeck”)。在('click',function()上{
$(“#openCard”).append($('').css($('.css('background-image','url('texture/'+game.options.remainingDeck[i].Taskai+'.'u of_'+game.options.remainingDeck[i].Simbolis+'.png'));
if(i==game.options.remainingDeck.length){
警惕(“卡拉德·普拉西德达·伊奥纳霍”);
}
i++;
});
这是flipACard();
},
flipACard:函数(){
$(“#remDeck”)。单击();
}
})
你大概是在某个时候把
.pop()
(或.shift()
)卡从剩余的卡片上取下来的吧?您可以在翻转时执行此操作,在这种情况下,i
计数器是不必要的。“如果(i=game.options.remainingDeck.lenght){”--我在这里看到两个错误,第一个是比较时应该使用==或===第二个是:长度而不是长度。修复它们并重试?代码没有在任何地方定义Taskai。请不要在每个句子开头都使用So;)点击F12并修复几个控制台errors@krankuba第一个不是问题,但是第二个is@krankuba斯波TET-如果(i=something)
输入错误是一个有效的测试,如果你想在某个错误时输入false并将其分配给i
。另外,alert拼写错误。你还有一个aler(“kaladëprasideda iðnaujo”)
im它应该是一个警报
$.widget("Game.RemainingDeck", {
options: {
remainingDeck: []
},
_create: function() {
var game = this;
var i = 0;
$("#remDeck").on('click', function() {
$('#openCard').append($('<div class=" card"></div>').css('background-image', 'url("texture/' + game.options.remainingDeck[i].Taskai + '_of_' + game.options.remainingDeck[i].Simbolis + '.png")'));
if(i === game.options.remainingDeck.length) {
alert("kaladë prasideda ið naujo");
}
i++;
});
this.flipACard();
},
flipACard: function() {
$("#remDeck").click();
}
})