因此,我正在製作一個小型閃存卡應用程序在rails中,並且我正在爲卡邏輯使用javascript。我是新來的JS,我有當我運行randomCard
功能elem.innerHTML = rand.back;
與新的「更新了一些麻煩resetting
的variables
我根據我的randomizing function
試圖用JavaScript函數設置一個全局變量
<script>
var card_list = "<%=j @deck.cards.to_json.html_safe %>";
console.log(card_list)
/* Parse the Json and get all the cards */
var cards = JSON.parse(card_list);
/* Return json object count */
var length = Object.keys(cards).length;
console.log(length)
/* Grab a random card from the card list */
var rand = cards[Math.floor(Math.random() * cards.length)];
console.log(rand)
/* Set the front label from random value */
var front = rand.front;
console.log(front)
/* Set the back label from random value */
var back = rand.back;
console.log(back)
/* Grab the div and set the label */
var elem = document.getElementById("card-face");
elem.innerHTML = rand.back;
/* Grab another random card from the card list */
function randomCard() {
var rand = cards[Math.floor(Math.random() * cards.length)];
console.log(rand)
if (typeof front !== 'undefined') {
alert("Undefined");
}
else{
var front = rand.front;
var back = rand.back;
console.log("Should now be updated?")
};
var elem = document.getElementById("card-face");
elem.innerHTML = rand.back;
}
/* Flip the card front to back */
function flipper() {
var elem = document.getElementById("card-face");
if (elem.innerHTML== rand.front) elem.innerHTML = rand.back;
else elem.innerHTML = rand.front;
console.log(elem)
}
</script>
結果使用卡front
和back
rand.back',但是當我翻轉卡'rand.front'時,rand.back
返回會話開始時我設置的初始值。我如何具體更新這些值?
你再在'randomCard'函數中聲明前後兩個局部範圍。不要使用'var front =',只是使用'front ='等等(你在本地範圍內的聲明隱藏全局範圍內的聲明) – Tibrogargan
分享你的json文件或內容來測試代碼 –