2013-02-28 59 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/