Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在此Javascript代码中,setInterval()在clearInterval()之后不起作用_Javascript_Setinterval - Fatal编程技术网

在此Javascript代码中,setInterval()在clearInterval()之后不起作用

在此Javascript代码中,setInterval()在clearInterval()之后不起作用,javascript,setinterval,Javascript,Setinterval,几个晚上以来,我一直在为这个问题烦恼: 我正在尝试用JavaScript创建一个扩展div。以下是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')" /> 下面是神奇的非工作JavaS

几个晚上以来,我一直在为这个问题烦恼:

我正在尝试用JavaScript创建一个扩展div。以下是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;
}
var maxHeight=100;
var-curHeight=1;
var-wait=5;
var timerID=新数组();
英国广播公司(obj)的职能{
if(document.getElementById(obj.style.display==“无”){
向下滑动(obj);
} 
否则{
document.getElementById(obj.style.display=“无”
}
}
函数向下滑动(obj){
document.getElementById(obj.style.height=“1px”;
document.getElementById(obj.style.display=“block”;
timerID[obj]=setInterval(“slideDownExec(\“”+obj+“\”),等待);
返回;
}
函数slideDownExec(obj){

if(curHeight您有一个问题,
slideDown
顶部的
curHeight
未设置为
1
。如果没有出现这种情况,则
slideDownExec
顶部的if语句将只在第一次工作

此外,JavaScript是否允许非整数数组索引

> a['i'] = 4
4
> a
[]
> a['i']
4

实际上,您正在向数组对象添加一个名为
i
的属性。您最好使用一个空对象而不是数组。

您遇到了一个问题,即
curHeight
没有在
slideDown
顶部设置为
1
。如果没有发生这种情况,则在
slidedownxe>顶部的If语句c
仅在第一次使用时有效

此外,JavaScript是否允许非整数数组索引

> a['i'] = 4
4
> a
[]
> a['i']
4

实际上,您正在向数组对象添加一个名为
i
的属性。您最好使用一个空对象而不是数组。

计时器正在运行,您只需重置一个变量:

    function slideDown(obj)
    {
        document.getElementById(obj).style.height = "1px";
        curHeight = 1;

我会使用jQuery来实现这一点,这要简单得多。

计时器正在运行,您只需重置一个变量:

    function slideDown(obj)
    {
        document.getElementById(obj).style.height = "1px";
        curHeight = 1;
我会使用jQuery来实现这一点,这要简单得多