Я пытаюсь использовать переменную questionID, чтобы отслеживать некоторые вопросы и ответы. Но, похоже, у меня проблема с тем, что переменная потеряет память, поскольку каждый раз я запускаю свою функцию? вот что я думаю в любом случае.JavaScript отслеживает глобальную переменную?
Когда я прошу: цвет, а затем выполните ответ: розовый, фиолетовый или зеленый, он переходит к последнему утверждению; else if(questionID == -1)
, который не является моим намерением.
Как я могу исправить это поведение? Я запускаю сценарий локально.
var questionID = -1;
function askQ() {
var findme = document.getElementById('askBox').value.toLowerCase();
var dontUnderstand = new Array();
dontUnderstand[0] = "Excuse me, What did You say ?";
dontUnderstand[1] = "Sorry, I cant understand You now. ^_^";
dontUnderstand[2] = "Sorry!, I got to go now... CU !";
dontUnderstand[3] = "ohh... Can you repeat that one more time ?";
var randomIndex = Math.round(Math.random() * 3);
if (findme.match(/(age|old)/)) {
document.getElementById('bubble').innerHTML = "ohh,, I am " +
obj1.age + " years old, How old are You ?";
}
if (!isNaN(findme)) {
document.getElementById('bubble').innerHTML = "ohh.. that's kinda old !";
}
if (findme.match(/(color)/)) {
document.getElementById('bubble').innerHTML = "My favourite color " +
" is Purple, What's yours ?";
questionID = 6;
}
if (findme.match(/(pink|purple|green)/) && questionID == 6) {
document.getElementById('bubble').innerHTML = "well...that's cute !!";
questionID = -1;
}
if (findme.match(/(hi|hello)/)) {
document.getElementById('bubble').innerHTML = "Hi there, nice to meet You !";
} else if (questionID == -1) {
document.getElementById('bubble').innerHTML = dontUnderstand[randomIndex];
}
}
_When я спросить: цвет, а затем следить с ответом: пи nk, фиолетовый или зеленый, он переходит к последнему утверждению; 'else if (questionID == -1)', который не является моим намерением_ -> Тогда почему вы устанавливаете 'questionID' в' if'-block до '-1' – Andreas
Какое сообщение об ошибке вы получаете в отладке консоль? – jeff
Ваш 'if (findme.match (/ (розовый | фиолетовый | зеленый) /) && questionID == 6) { ' задает 'questionID'' -1', который затем (во время того же вызова функции) соответствует условие 'else if (questionID == -1) {'. Вы можете исправить это, сделав свой последний оператор 'if'« else if »предыдущего. – Matt