2013-02-28 66 views
0

我对js和jquery很新,需要帮助理解为什么这个脚本不起作用。我已经检查了很多次,但是在我的所有研究中,都有一些我错过了。任何帮助,将不胜感激。代码应该每隔2秒设置一次div的文本值。我从真实的功能中减少了这些代码,所以忽略了它什么都不做的事实。原谅和纠正我,如果我没有正确发布。这是我的第一篇文章。下面 代码:需要帮助理解Javascript setinterval和函数声明

<html> 
    <head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"> 
    </script> 
    <script type="text/javascript"> 
     var test=0; 
     var timer = setInterval(save_it(), 2000); 
     var test=0; 
     $(document).ready(function(){ 
      var save_it = function(){ 
      testdiv.innerhtml = test++; 
      }; 
     }); 
    </script> 
    </head> 
<body> 
    <div id="testdiv"></div> 
</body> 
</html> 

+0

作为一般规则,你不应该看到''一个内部setInterval''使用functionName()。有些情况下可能,但只有当'functionname'本身返回一个函数。 – 2013-02-28 19:18:29

回答

0

尝试该示例(的jsfiddle http://jsfiddle.net/Br59d/

HTML:

<div id="testdiv"></div> 

的javascript:

var test=0; 

$(document).ready(function(){ 
    var timer = setInterval(save_it, 2000); 
}); 

function save_it(){ 
    $('#testdiv').html(test.toString()); 
    test++; 
}; 
0

提供一些输入:

var save_it = function() { 

function save_it() { 

的两个独立的方式。如果使用var save_it = function(),则不能在声明前调用该函数。

即你不能做到这一点:

save_it(); 
var save_it = function() { 
    alert('k'); 
} 

但是,如果你使用的功能save_it()就可以了。

save_it(); 
function save_it() { 
    alert('k'); 
} 

的jsfiddle:http://jsfiddle.net/jeffshaver/nmSD6/