11548 sujets

JavaScript, DOM et API Web HTML5

Bonjours,
Je suis entrain de travailler sur un site. Le changement de page s'effectue avec Ajax. Sur l'une des page appelé il y a un slider.
Si j'ouvre directement la page du slider tout fonctionne. Par contre si j'appel le contenu de celle si depuis une autre page le slider ne fonctionne plus, le js n'est apparament pas réinterpréter
J'ai mi un dossier zip (http://ge.tt/99GwcLD?c) pour montrer concrètement le problème
J'ai chercher sur internet je suis tomber sur plein de site. Il donne des fonctions, mais sois ça ne marche pas sois je ne sais pas où les placer.

Est-ce que quelqu'un à la solution ?
Justement j'ai vu ce topic mais je comprend pas a quel endroit je dois placer mon code et qu'est ce que je dois réelment ciblé.

J'ai essayer de le metre a la fin de la fonction de chargement ajax. Mais du coup au lieu de changer juste le contenu il change de page.

Voilà le code que j'ai placer a la fin de ma fonction (il y a peut etre déja un probleme a ce niveau)

success : function(data) {

  obj.html(data); // C'est la première ligne sur le lien mais je la comprend pas je ne vois pas de class ni d'id je suppose qu'il fau la laisser tel quel

  obj#gallery(); // j'ai changer la class du boutton de l'exemple par l'id de mon slide
}





et voici le code de ma navigation ajax

/**
 * Navigation Ajax -  http://www.webinventif.fr/navigation-sans-rechargement-de-page-via-javascript-jquery/
 
 * 
 * Copyright (c) 2008 Julien Chauvin (webinventif.fr)
 * Licensed under the Creative Commons License:
 *  http://creativecommons.org/licenses/by/3.0/
 
 *
 * Date: 2008-03-13
 */


/* Fonction chargement ajax avec animation, 
 * vous pouvez modifier la vitesse (slow, fast, 1500, ...) 
 * et l'effet (slideUp, fadeOut, ...) */
 
 
 

function ajax_page_advanced(ele,msg,url){
	$(ele).slideUp("slow", function(){
		$(ele).html(msg).show("slow", function(){
			$(ele).load(url+" "+ele, null, function(){
				var tampon = $(ele).html();
				$(ele).html(msg).hide("slow",function(){
					$(ele).html(tampon);
					$(ele).slideDown("slow");
					
				});
			});
		});
	});
}


/* Fonction de chargement ajax simple */
function ajax_page(ele,msg,url){
	$(ele).html(msg).load(url+" "+ele);
}
/* Fonction de chargement ajax simple, mais avec un delai pour la demo */
function ajax_page_delayed(ele,msg,url){
	$(ele).html(msg);
	setTimeout(function(){
		$(ele).load(url+" "+ele);
	}, 1500)
	

}

/* Une fois la page chargée */
$(document).ready(function(){
	//Application du chargement ajax avec animation sur les liens ayant une classe "wajax"
	$("a.wajax").click(function(){
		ajax_page_advanced('#main-content','<p style="text-align: center"></p>',this.href);
		return false;
		
	});
	//Application du chargemetn ajax simple sur tous les liens se trouvant dans le conteneur "menu1"
	$("#menu1 a").click(function(){
		ajax_page_delayed('#main-content','<p style="text-align: center"></p>',this.href);
		return false;
	});
});







A quel endroit du deuxième code dois-je placer le premier?
Franchement je suis sure c'est tout con mais je m'arrache les cheveux depuis deux semaine. Je tape ma tete contre la table lol
Dans mon exemple "obj" n'est ni plus ni moins qu'une variable ... (un objet).

on suppose :

var obj = $('#tonId');

le code

obj.html(data); // ou $('#tonId').html(data);

signifie que je place "data" (le contenu de la variable) dans l'id #tonId : <div id="tonId">data...</div>

obj#gallery(); // <-- c'est une syntaxe qui n'existe pas.

on suppose que ta fonction pour ton slide est donc .gallery()

il faudrait faire

obj.gallery(); // ou directement $('#tonId').gallery();


Dans ton cas, tu dois le mettre ici (il me semble, j'ai pas tout lu)

$(ele).load(url+" "+ele, null, function(){

   var tampon = $(ele).html();

   $(ele).html(msg).hide("slow",function(){

	$(ele).html(tampon);

	$(ele).slideDown("slow");			

   });

   // -------------- ICI ------------------------------
   // quelque chose comme ? $(ele).gallery();

});
J'ai essayer mais j'comprend pas. Je pense que je me lance dans quelque chose que je ne maitrise vraiment pas. Je vais allé voir un ancien professeur qui arrive à me faire comprendre les choses, si j'arrive a résoudre mon problême je posterai la solution sur ce topic.

En tout cas je vous remercie d'avoir pris du temps pour m'aider !