Я пару дней отрывал себе волосы из-за этой проблемы:
Я пытаюсь создать расширяющийся div с помощью JavaScript.Вот часть HTML-файла:
<div id="bbc_div" class="bbc_div" style="display:none; height:200px;">
<input type="button" value="Show BBC" id="bbc_button" onclick="onclickBBC('bbc_div')" />
А вот волшебный нерабочий файл JavaScript:
var maxHeight = 100;
var curHeight = 1;
var wait = 5;
var timerID = new Array();
function onclickBBC(obj) {
if (document.getElementById(obj).style.display == "none") {
slideDown(obj);
}
else {
document.getElementById(obj).style.display="none"
}
}
function slideDown(obj) {
document.getElementById(obj).style.height="1px";
document.getElementById(obj).style.display="block";
timerID[obj] = setInterval("slideDownExec(\"" + obj + "\")", wait);
return;
}
function slideDownExec(obj) {
if (curHeight <= maxHeight) {
curHeight++;
document.getElementById(obj).style.height=curHeight + "px";
}
else {
endSlide(obj);
}
return;
}
function endSlide(obj) {
clearInterval(timerID[obj]);
return;
}
Когда я перезагружаю страницу, div расширяется до нужной высоты.Но если я снова нажму кнопку, не перезагружая страницу после того, как она снова спряталась, это не сработает.display:block;
работает, но setInterval()
не запускается.Так что это происходит после выполнения clearInterval()
.Почему clearInterval()
убивает моего setInterval()
навсегда?