11480 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis entrain de corriger un vieux projet ; je rafraîchit le code et je corrige les erreurs.

Et donc, dans ma console, j'ai cette erreur vraiment chelou : "Uncaught SyntaxError: Unexpected identifier". Elle est accompagné d'une indication spéciale dont je ne comprend pas le sens : "VM4085:1". Généralement, le nom du fichier et le numéro de la ligne à laquelle l'erreur se rapporte s'affiche, mais pas ici.

Bref, j'ai trouvé la ligne concerné, quand je l'enlève l'erreur ne s'affiche plus. Par contre, je ne comprend pas ce qui cloche sur cette ligne de code, de mon point de vue ça semble correcte.

La ligne en question :

var time =  1000;
setTimeout($("#p1 #s2").addClass("rollIn animated"),time); 


Vue générale du code :

var time =  1000;
$("*[data-index='2']").attrchange({
       trackValues: true,
       callback: function(evnt) {
           if(evnt.attributeName == "class") {
               if(evnt.newValue.search(/active/i) == 0) {
                   if ($("*[data-index='2']").attr("class") == "active" || scroll2 == 0) {
                   	scroll2 = 1;
                   	setTimeout($("#p1 #s2").addClass("rollIn animated"),time); 
                   	$(".onepage-pagination li").removeClass("white");
                   	$(".onepage-pagination li").addClass("white");
                   	$("header h1").animate({"margin-top": 0},halftime);
                     // event.preventDefault();
                   } else {
                   	scroll2 = 0;
                   }
               }
           }
       }
   });


Donc voilà, si vous avez une idée pour m'aider à résoudre ce problème, n'hésitez pas.

Merci d'avance !
Modifié par rhq (26 Apr 2017 - 17:45)
Bonjour,
Le premier argument de setTimeout doit être une fonction ou du code sous forme de chaîne de caractères. Donc soit vous mettez des guillemets, soit vous utilisez une fonction anonyme.
Modifié par Seven tears (26 Apr 2017 - 17:50)
Meilleure solution
Merci ! J'ai enlever le setTimeout, c'est bon... Smiley lol Je ne sais plus pourquoi je l'avais mis...

Sinon pour ne pas avoir l'erreur, voilà le code :

var time = 1000;
var roll = function() { $("#p1 #s2").addClass("rollIn animated"); };
setTimeout(roll,time);

Modifié par rhq (26 Apr 2017 - 18:05)