我在寫一個'性格類型'測驗,並希望爲用戶在測驗中進行選擇時所選擇的選項分配值。這個想法是每個對問題的回答都會有不同的數字權重,我相信隨着某人的進步並最終完成測驗。最後,我會使用理貨提供幾個不同的結果之一。在JSON中通過增加值
目前,用戶可以通過測驗進度,但無法獲得數字權重。
這是我在下面的代碼中的方法: - 我使用countValue作爲我的理貨。它在JS的頂部設置爲1。 - 在測驗中的每個問題中,有一個標題爲添加的值被分配了一個數字,就像測驗的初始視圖中增加了一樣:0 - 隨着測驗的進行,還有一個要添加的字段。 - 在測驗的底部是一個標題爲display_scenario的函數,我試圖在countValue中添加加法的值,但它不起作用。我可以看到它不起作用,因爲控制檯日誌爲我提供了函數內值的NaN值。
所以看起來好像我不把附加值變成一個整數/數字。我不知道如何做到這一點。我試過使用parseInt()和Number()並沒有運氣。
完整的代碼是在Codepen - http://codepen.io/msummers40/pen/EKJQmN - 但關鍵的JavaScript/jQuery如下。預先感謝您的幫助。
//establishing counter for weighted answer
var countValue = 1;
console.log(countValue);
// var additionInt = 1;
// console.log(additionInt);
// JSON for personality quiz
// Contains the story, paths and variable to weight answers
var story = {
intro: {
prompt: 'Welcome message. Let\'s get started.',
quizImage: '<img id="quizImage" src="https://media.giphy.com/media/vc6gDdl4rHusE/giphy.gif"><br />',
options: [{
name: 'get started',
path: 'get_started',
addition: 0,
}]
},
get_started: {
prompt: 'You need pancakes. What kind will you make: thin or fluffy?',
quizImage: '<img id="quizImage" src="http://www.allgifs.com/wp-content/uploads/2013/09/pancake.gif">',
options: [{
name: 'thin',
path: 'thin',
addition: '2'
}, {
name: 'fluffy (leading to thin temporarily)',
path: 'thin',
addition: '3'
}]
},
//THIN PANCAKE SECTION
thin: {
prompt: 'Yum. What do you do next?',
quizImage: '<img id="quizImage" src="//media.giphy.com/media/2Mp7y2FkcW80M/giphy.gif">',
options: [{
name: 'pop out to get store-bought pancakes',
path: 'result',
addition: '2'
}, {
name: 'use a recipe',
path: 'result',
addition: '1'
}]
},
result: {
prompt: 'That is all I have for this example!',
quizImage: '<img id="quizImage" src="http://www.technologytell.com/entertainment/files/2013/11/Leonardo-DiCaprio-Toast-Fireworks-Gif.gif">',
options: [{
name: 'Reset',
path: 'intro' //RESET
}]
}
};
/* Chosen option is an object with properties {name, path} */
function display_scenario(chosen_option) {
var option_name = chosen_option.name;
var option_path = chosen_option.path;
var additionInt = chosen_option.addition;
additionInt = Number(additionInt);
console.log(additionInt);
countValue = (additionInt + countValue);
console.log(countValue);
var scenario = story[option_path];
您在demo.ready中傳遞給'document.ready'中'display_scenario()'的對象沒有屬性'addition' so'var additionInt = chosen_option.addition;'將被定義爲 – charlietfl
'console.log(chosen_option.addition)是_undefined_,因爲您將'chosen_option'傳遞爲'{name:null,path:'intro'}'。 – Jasen
謝謝你的幫助。我忽略了最後的功能 - 我更新了它,整理了一些東西,現在它正在工作。 http://codepen.io/msummers40/pen/JXVapo?編輯= 0010 – scaffolding