Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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 为什么setTimeout会在Chrome中触发两次,而不是IE或Firefox?_Javascript_Google Chrome - Fatal编程技术网

Javascript 为什么setTimeout会在Chrome中触发两次,而不是IE或Firefox?

Javascript 为什么setTimeout会在Chrome中触发两次,而不是IE或Firefox?,javascript,google-chrome,Javascript,Google Chrome,有人能告诉我为什么javascript函数'GenerateNewNumber'在Chrome中启动了两次,但在IE或Firefox中却没有?使用Chrome 20.0.1132.57、IE9和Firefox 13 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns

有人能告诉我为什么javascript函数'GenerateNewNumber'在Chrome中启动了两次,但在IE或Firefox中却没有?使用Chrome 20.0.1132.57、IE9和Firefox 13

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="/App_JScript/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" language="javascript">

        $(document).ready(function () {
            $('a#RandomNumber').click(function () { initiateNewNumber(); });
        });

        function initiateNewNumber() {

            setTimeout('GenerateNewNumber();', 3000);
        }

        function GenerateNewNumber() {
            var randomnumber = Math.floor(Math.random() * 1123);
            document.getElementById('RandomNumber').innerHTML += '<br>' + 'Random Number is ' + randomnumber;
        }
    </script>
</head>
<body>
    <a id="RandomNumber" href="#">Click for Random Number</a>
</body>
</html>

$(文档).ready(函数(){
$('a#RandomNumber')。单击(函数(){initiateNewNumber();});
});
函数initiateNewNumber(){
setTimeout('GenerateNewNumber();',3000);
}
函数GenerateNewNumber(){
var randomnumber=Math.floor(Math.random()*1123);
document.getElementById('RandomNumber')。innerHTML+='
'+'随机数是'+RandomNumber; }
我已经搜索了Stackoverflow,但找不到任何有帮助的建议


提前感谢。

设置超时需要一个函数作为第一个参数:

setTimeout(function() { GenerateNewNumber(); }, 3000);
试试这个


设置超时(GenerateNewNumber,3000)

整个上午我都在研究这个问题,一发布它我就明白了:(我需要$('a#RandomNumber')。单击(function(){initialenewnumber();return false;});最好使用函数,但支持使用字符串作为代码:如果您所做的只是调用单个函数,则可以直接提供:
setTimeout(GenerateNewNumber,3000);
没错,丹尼斯。我想澄清一下,有一个函数是作为参数传递的。为什么有人否决了这个?这是传递函数的正确方法。