Когда вы перезагружаете страницу, вы видите, что она не начинается с closedivs, но начинается с добавления классов без выполнения оператора if-else.
Это потому, что jQuery рассматривает $(function)
как удобную форму $.ready(function)
: переданный объект-функция выполняется при загрузке страницы .
То есть $(function openDiv1() {...})
определяет объект-функцию, который затем передается в jQuery для автоматического выполнения при загрузке страницы. Вместо этого удалите функции из $(...)
. Например, function openDiv1() {...}
будет достаточно. (Это также исправит ошибки, связанные с невозможностью вызова openDiv1
- поскольку это выражение функции, оно не будет назначено переменной / свойству в области.)
Ниже описана проблема с функцией slide
.
JavaScript делает некоторые принуждения; ниже показано, почему ветвь else не будет достигнута:
Number("") // same as Number(0)
Number("") >= 0 // true
Но на самом деле, пожалуйста, не используйте Number
(это объект-обертка для number
), рассмотрите parseInt(str, 10)
в качестве замены. В качестве дополнительного бонуса parseInt("", 10)
оценивается как NaN
(не 0), и, поскольку NaN >= 0
имеет значение false, это решит начальную проблему.
function slide(){
var n = parseInt(document.getElementById('Getal1').value, 10)
if (n >= 0 && n <= 100) {
$(closeDiv())
} else if (n > 100 && n <= 200) {
$(openDiv1())
} else if (n > 200) {
$(openDiv2())
} else {
alert("You did not enter a number!")
}
}
Также обратите внимание на изменения согласованности, которые я добавил. Квадратные скобки не нужны, но я считаю, что это помогает в письменной форме в согласованном, хорошо отформатированном / хорошо с отступом стиле. Другие вещи, на которые следует обратить внимание, это упорядочение операторов if / else, а также сравнений (оставьте это «текущим»).
Удачного кодирования.