0
我正在使用jQuery創建記憶遊戲,我的問題是一個特定的事情,我沒有找到我錯在哪裏。在jQuery中的記憶遊戲在數組中保存圖像
我的方式建造它: 所有圖片都有默認的src值,之後點擊的SRC變化,如果點擊了兩個圖像是不一樣的,默認SRC價值迴歸。
的問題是: 的defualt SRC價值迴歸後,當我再次點擊圖片,最後顯示SRC應該從陣列retrive,但其顯示antoher隨機圖像來代替。
這是培訓相關代碼
var imgArr1 = ["images/skinny-unicorn.png", "images/all-757448_640.jpg", "images/alm-770667_640.jpg", "images/audi-798530_640.jpg", "images/landscape-691462_640.jpg", "images/skinny-unicorn.png", "images/all-757448_640.jpg", "images/alm-770667_640.jpg", "images/audi-798530_640.jpg", "images/landscape-691462_640.jpg"];
var arrStr = [32];
$('.img').click(function(){
//var openCount = openCardCount();
var id = $(this).attr("id");
if(getFromArray(id) != 'null')
{
var oldSrc = getFromArray(id);
$('#' + id).attr('src',oldSrc);
}
else
{
var src = $(this).attr("src");
if(src == "images/back.png")
{
$('#' + id).attr('src',ChangeFirstArray());
}
var openCard = openCardCount();
if(openCard == 1)
{
storeInArray(id,src);
$(".img").attr("src","images/back.png");
}
}
});
/* create an array of id and src that as been allready clicked once */
function storeInArray(id,src)
{
for(var i = 0 ; i < arrStr.length; i++)
{
if(arrStr[i] == "")
{
arrStr[i] = id;
arrStr[i+1] = src;
}
}
}
/* check if there is old image on this id, return the src if there is one, if not return null */
function getFromArray(id)
{
for(var i = 0 ; i < arrStr.length; i++)
{
if(id == arrStr[i])
var src = arrStr[i+1];
var src = 'null';
}
return src;
}
更新的getFromArray功能,問題依然存在
function getFromArray(id)
{
for(var i = 0 ; i < arrStr.length; i++)
{
if(id == arrStr[i])
{
var src = arrStr[i+1];
}
else{var src = 'null';}
}
return src;
}
你爲什麼要重新聲明'src'作爲'null'後設置爲'arrStr [i + 1]'? –
null是else語句,如果id不等於arrStr [i],那麼src得到空值 –
是,但如果它等於,那麼在設置爲'arrStr [i + 1]後,它將被設置爲' 'null'。因此'getFromArray'會一直返回''null'' –