11550 sujets

JavaScript, DOM et API Web HTML5

webdesignswiss (Mercredi 03 Novembre 2010 à 18:45):

stop : function(){
windows.clearInterval(carrousel.timer);
},
play : function(){
windows.clearInterval(carrousel.timer);
carrousel.timer = window.setInterval('carrousel.next()',5000);
},



Firebug:
windows is not defined
? in carrousel.js@75()carrousel.js (ligne 76)
? in jquery-1.4.3.js@2168(Object { name="event"})jquery-1.4.3.js (ligne 2209)
? in jquery-1.4.3.js@1840()jquery-1.4.3.js (ligne 1844)
error source line: [Break on this error] windows.clearInterval(carrousel.timer);


Pourriez-vous m'aider:

Je débute ,
Bonjour,

Copie/colle tout ton fichier carrousel.js pour qu'on puisse voir la fameuse ligne 76.
Il me semble que l'appel à la fonction clearInterval et setInterval ne nécessitent pas obligatoirement qu'on la préfixe par "window."
Autrement il faudrait déclarer au début de ton objet JS un attribut qui prendrait l'objet windows, et l'utiliser à la place de ce dernier.
stop : function(){
clearInterval(carrousel.timer);
},
play : function(){
clearInterval(carrousel.timer);
carrousel.timer = setInterval('carrousel.next()',5000);
},

A bientôt,
JuJu
Modifié par JuJu57 (03 Nov 2010 - 19:56)
/*CARROUSEL*/


var carrousel={
nbSlide: 0,/*compter le nombre de Slide qu'il a*/
nbCurrent: 1,/*en commence par le premier element*/
elemCurrent: null,/*stocker les elements HTML*/
elem: null,/*initalise dans quel div mon carrousel/rendre plus dnyamique*/
timer: null,
/*pour pouvoir changer de DIV*/
init: function(elem){
this.nbSlide = elem.find('.slide').length;/*nombre d'élément de slide*/

//pour créer la pagination

elem.append('<div class="navigation"></div>');
for(var i=1;i<=this.nbSlide;i++){
elem.find(".navigation").append('<span>'+i+'</span>');/*permet de chercher les span*/
}/*iniatilse toutes les variables*/
/*on va déclencher un événement*/
/*on clique sur un bouton sa appel la function gotoSlide*/
elem.find(".navigation span").click(function(){carrousel.gotoSlide($(this).text());})

this.elem = elem;/*commencer par le premier Slide*/
elem.find('.slide').hide();
elem.find('.slide:first').show();/*lepremier slide element courant*/
this.elemCurrent = elem.find('.slide:first');
this.elem.find('.navigation span:first').addClass('active');/*pace active au premier span*/

/*On crée le timer*/

/*tous les cinq seconde*/
carrousel.play();
//stop quand on passe dessus*/
elem.mouseover(carrousel.stop);
elem.mouseout(carrousel.play);
},
//quand passe dessus avec la souris


/*créer a aller endroit précis*/
/*numero du slide que l'on veut afficher*/

/*alert(num);*/
gotoSlide: function(num){
if(num==this.nbCurrent){return false;}/*qu'on ne puise pas recliquer sur l'image*/
/*Animation*/
//this.elemCurrent.fadeOut();/*déclencher des naimations*/
//this.elem.find('#slide' + num).fadeIn();/*on l'affiche*/
/*on change le nombre courant*/
/*et on change l'élément courant*/

/*Animation*/
this.elem.find('#slide' + num).show().css({
'left':this.elem.width(),
})
this.elem.find('.navigation span').removeClass('active');/*j'enlève leurs classe active*/
this.elem.find('.navigation span:eq('+(num-1)+')').addClass('active');
this.nbCurrent = num;
this.elemCurrent = this.elem.find('#slide' + num);
},
/*aller dans fonction aller à l'élément suivant*/
/*va ajouter 1*/
next: function(){
var num = this.nbCurrent+1;
if(num >this.nbSlide){
num =1;
}
this.gotoSlide(num);
},
/*aller dans fonction aller à l'élément suivant*/
/*va ajouter 1*/
prev: function(){
var num = this.nbCurrent-1;
if(num< 1){
num=this.nbSlide;
}
this.gotoSlide(num);
},
/*nettoyer le teamer le temps*/
stop:function(){
window.clearInterval(carrousel.timer);
},

play:function(){
window.clearInterval(carrousel.timer);
carrousel.timer=window.setInterval("carrousel.next()",2000);
}

}

$(function(){
carrousel.init($('#carrousel'));
/*alert(carrousel.nbSlide);*/
});
Je reviens sur ce que j'ai dit avant. En fait tu utilise l'objet JS "windows", en réalité cet objet est appelé "window", d'où l'erreur...

Utilise les balises prévue pour mettre ton code dedans, ça sera plus lisible. Tu peux le faire en éditant ton message.
Modifié par JuJu57 (03 Nov 2010 - 20:00)