Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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 js计时器无法正确运行_Javascript - Fatal编程技术网

Javascript js计时器无法正确运行

Javascript js计时器无法正确运行,javascript,Javascript,我将这些代码放在html的开头部分,但无法正确运行, 有什么问题吗 很明显,它是一个计时器,但它甚至不运行一次。 我没有忘记链接jquery 非常感谢 <script type="text/javascript"> $(function(){ function something(){ alert("something happened"); } var timer=function(){ something();

我将这些代码放在html的开头部分,但无法正确运行,
有什么问题吗

很明显,它是一个计时器,但它甚至不运行一次。
我没有忘记链接jquery

非常感谢

<script type="text/javascript">
$(function(){
    function something(){
        alert("something happened");
    }

    var timer=function(){
        something();
        setTimeout(timer,900);
    };

    timer;
}
);
</script>

$(函数(){
函数某物{
警惕(“发生了什么事”);
}
变量计时器=函数(){
某物();
设置超时(定时器,900);
};
定时器;
}
);

您的外部匿名函数是在就绪状态下运行的,但它只定义了两个函数,然后有一个无用的
计时器
表达式,您必须实际调用该函数:
计时器()

如果您想正确地执行此操作,您可能应该完全取消
计时器
功能,因为您似乎正在尝试模拟
设置间隔

$(function(){
    function something(){
        alert("something happened");
    }

    setInterval(something, 900);
});

如果你想每900毫秒调用
something
,你应该使用
setInterval
而不是
setTimeout
setInterval(something,900)
。但是为什么这里“setInterval(something,900);”可以工作,为什么不使用“setInterval”(“something()”,900);?可能是因为你必须使用“timer()'而不是'timer'来调用计时器。@namiheike-您可以通过函数或字符串传递setInterval以进行
eval
ed。后一个选项会破坏作用域,速度慢且难以调试。传递函数是更好的选择。