2013-07-27 34 views
0
(function foo() { 
     alert('Hello World!'); 
     setTimeout(foo,1000); 
    })(); 

工作我写了这样的功能。当我把这个函数放在我的HTML页面内的标签里时,这个函数可以正常工作。但是当我把这个函数放到一个外部的javascript文件中并且把这个文件链接到我的网页时,这个函数只执行一次(警报只弹出一次)。我的意思是setTimeout(foo,1000); 似乎没有任何效果。代码文件无法正常

问题出在哪里,以及如何才能摆脱这件事? [但在我的js文件等功能工作正常。]

+0

你是否外部文件只包含上面的代码?你有什么其他功能在你的js文件中? –

+0

你是否也可以显示HTML - JS被引用的地方以及它被调用的地方? –

+0

我无法复制 – sabof

回答

0

FIXED:

我想你只需要包装出到闭合功能类似:

(function() { 
    function foo(){ 
     console.log('Hello, world!', new Date().toLocaleTimeString()); 
     setTimeout(foo,1000); 
    } 

    window.onload = foo; 
})(); 

点点theory and examples

+0

这在功能上是不同的; 'foo'只会运行一次。另外,命名的函数表达式可以获得对自己的引用。不需要额外的关闭。 – sabof

+0

@sabof添加修复程序,谢谢。 – CodeGroover