2011-08-10 4 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属性が必要なので、display:noneにしないでください。

(また、おそらく明白なことを述べて、関数が呼び出されると、クッキーが実際にコンテンツを持っていることを確認してください。)

2

を使用することができますよく見えます。

$.cookie()は、クッキーが見つからず、.val(null);を使用して入力値にnullを割り当てると、nullを返します。

関数を呼び出すためとして、あなたは同様にdocument.readyにこれを実行することもできます。

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

あなたはまた、それ自体隠して隠し入力<input type="hidden" />を使用して検討する必要があります自動的に表示して大騒ぎすることなく、 :なし。

また、これは議論の余地がありますが、NULL参照を避けるために、関数名自体ではなく文字列式を使用して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); 
} 
関連する問題