Я делаю таблицу, которая вызывает следующий метод, когда изменяется значение, но метод обновления умирает часть в случае, если переменная stuntSet установлена на «все»Если оператор остановку для цикла
Когда я звоню updateStunts, если stuntSet установлен на «all», он никогда не выходит из цикла for. Когда он настроен на что-либо еще, он работает нормально и переходит на вызов countStuntRefresh(). Странная часть состоит в том, что он завершает весь код внутри оператора if, который проверяет, является ли stuntSet === "all", но он никогда не достигает вызова для countStuntRefresh();
Я прохожу через это в течение часа, и я не могу найти свою ошибку. Прошу прощения, если это простая ошибка, и я ценю любую помощь, которую вы можете дать.
http://jsbin.com/nicoruvamula/1/ ссылка на полный код
var selected = false;
var updateStunts = function() {
for (var i = 0; i < character.stunts.length; i++) {
if (stuntSet === "all") {
selected = document.getElementById("select" + character.stunts[i].name).checked;
character.stunts[i].chosen = selected;
} else if(stuntSet === character.stunts[i].category) {
selected = document.getElementById("select" + character.stunts[i].name).checked;
character.stunts[i].chosen = selected;
}
}
countStuntRefresh();
};
var countStuntRefresh = function() {
character.spentRefresh = 0;
for(var i = 0; i <character.stunts.length; i++){
if (character.stunts[i].chosen) {
character.spentRefresh += character.stunts[i].cost;
}
document.getElementById("stunttest").innerHTML = "Spent Refresh:" + character.spentRefresh;
}
};
Что точка если утверждение, если они оба делают одно и то же? –
^Вернее, это эквивалентно: 'if (stuntSet ===" all "|| stuntSet === character.stunts [i] .category)'. – Vinay
Я, вероятно, должен был использовать || между двумя. Существует много разных категорий, и это должно было ограничивать, какой характер повлияли на выбранные свойства. –