2013-02-20 42 views
7

Dlaczego otrzymuję Uncaught SyntaxError: Unexpected identifier, czy działa on raz?setInterval() - nieoczekiwany identyfikator - ale działa raz

Istnieje kilka takich na StackOverflow. Punchline jest zwykle literówką gdzieś w skrypcie.

Działa raz, a następnie daje 1 komunikat o błędzie na sekundę.

Oto jestem zmieniając kolory państw na mapie:

<!-- 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> 

Odpowiedz

17

Brakuje function(){} zawinąć kod.

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

Działa jednokrotnie, ponieważ wykonuje swój wewnętrzny kod, szukając funkcji lub łańcucha, który ma zostać zwrócony. Gdy nie jest, nie powiedzie się z błędem js.

0

SetInterval akceptować parametry użytkowe w cudzysłowie:

<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> 
Powiązane problemy