2011-08-10 93 views
3

這個功能有什麼問題?jQuery設置超時功能

function getTuittingCookie() { 
var tuitting_cookie = $.cookie("tuittingID"); 
$("#tuittingID").val(tuitting_cookie); 
//alert(tuitting_cookie); 
setTimeout(getTuittingCookie, 2000); 
} 

應該寫入值每2秒對現場:

<input id="tuittingID" style="display:none" value=""/> 

反而它不寫任何東西!

你能幫助我嗎?

+1

問題:爲什麼不使用''而不是添加'style =「display:none」'?或者Ray Toal問道,你打算使用隱藏的「div」嗎? –

回答

4

你在你的代碼中調用函數getTuittingCookie()。 此代碼對我的作品看到 http://jsfiddle.net/Z9dcb/2/

function getTuittingCookie() { 
var tuitting_cookie= Math.floor(Math.random()*11) 
$("#tuittingID").val(tuitting_cookie); 
//alert(tuitting_cookie); 
setTimeout(getTuittingCookie, 2000); 
} 
getTuittingCookie(); 

,並在適當位置使用代碼

的例如,你可以使用

<input id="tuittingID" type="hidden" value=""/> 
0

您可能想要寫入div而不是輸入,否則您的輸入需要type屬性,並且不應顯示:none。

(另外,可能說明明顯,請確保調用該函數和餅乾居然有內容。)

2

假設你調用這個函數,首先,一切看起來不錯。

$.cookie()將返回null如果找不到cookie並且使用.val(null);將null分配給輸入值是可以接受的。

至於調用函數,你可能會想這樣做對document.ready爲:

$(document).ready(function() { 
    getTuittingCookie(); 
}); 

您可能還需要考慮使用一個隱藏的輸入<input type="hidden" />因爲它隱藏自身,而不必與顯示大驚小怪自動:沒有。

此外,這是有爭議的,但使用字符串表達式而不是函數名稱本身來調用setTimeout()以避免空引用可能更安全。

setTimeout('getTuittingCookie()', 2000); 
0

這段代碼對我現在的兄弟來說是完美的。

$(document).ready(function() { 
    setTimeout(function(){ 
     getTuittingCookie(); 
    }, 2000); 
}); 
function getTuittingCookie() { 
    var tuitting_cookie= Math.floor(Math.random()*11) 
    $("#tuittingID").val(tuitting_cookie); 
}