setInterval("doSomething()", 2000);
function doSomething(){alert('hi')}
我一直reading about this,我只是不能得到的例子來工作:(
setInterval("doSomething()", 2000);
function doSomething(){alert('hi')}
我一直reading about this,我只是不能得到的例子來工作:(
你的代碼,因爲的jsfiddle的不執行。它將代碼包裝在一個onload處理程序中,從而使doSomething
不在全局名稱空間中。所以當setTimeout試圖執行你的代碼時,它找不到doSomething
。更改的jsfiddle執行「無包裝」,一切都很好:http://jsfiddle.net/gilly3/PRff7/3/
如果你不換你來doSomething
呼叫字符串,它也將工作,因爲setInterval
得到直接引用doSomething
這是在同一範圍。它不需要全球參考。
您需要將其更改爲
setInterval(doSomething, 2000);
function doSomething(){alert('hi')}
如果你想離開你的代碼內聯,而不是將它委託給某個命名的功能(尤其是如果代碼中包含多個命令),使用此:
setInterval(function(){ alert('hi'); alert('hello') }, 2000);
+1爲*解釋*爲什麼它沒有工作。 – user113716
+1找出問題所在 – SLaks
驚人的答案。我一直在用互聯網看到這些例子,我想知道爲什麼這麼多例子都是錯的,這只是因爲它們是jQuery之前的版本。 – Mohammad