2013-02-20 88 views
7

爲什麼我得到Uncaught SyntaxError: Unexpected identifier如果它一次工作?setInterval() - 意外標識符 - 但它有效一次

StackOverflow上有一堆這些。妙語通常是劇本中某處的錯字。

它工作一次,然後它每秒給出1個錯誤消息。

在這裏,我改變地圖上的狀態的顏色:

<!-- language: lang-js --> 
<script type="text/javascript"> 
colors = [ 'rgba(255,0,0,0.1)','rgba(0,255,0,0.1)','rgba(0,0,255,0.1)' ]; 

$(document).ready(function(){ 

    setInterval(
     $("ul").children().eq(Math.floor(50*Math.random())).css('color', colors[Math.floor(3*Math.random())]) 
    ,1000); 

}); 
</script> 

回答

17

你缺少function(){}來包裝你的代碼。

setInterval(function(){ 
    $("ul").children().eq(Math.floor(50*Math.random())).css('color', colors[Math.floor(3*Math.random())]) 
},1000); 

它工作一次,因爲它執行你的內部代碼尋找一個函數或返回的字符串。當一個不是,它失敗,並出現js錯誤。

0

的setInterval接受參數應用在報價:

<script type="text/javascript"> 
colors = [ 'rgba(255,0,0,0.1)','rgba(0,255,0,0.1)','rgba(0,0,255,0.1)' ]; 

$(document).ready(function(){ 

    setInterval(
     '$("ul").children().eq(Math.floor(50*Math.random())).css("color", colors[Math.floor(3*Math.random())])' 
    ,1000); 

}); 
</script>