11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Débutant en jQuery, je me heurte au problème suivant : avec la méthode "append", peut-on charger dans une page HTML le contenu d'un fichier distant, plutôt que d'écrire directement le code HTML à insérer ?
Par exemple, pouvoir mettre :

var texte = "ajax/sousmenu/"+lien+".html";
$("#sousMenu").append(texte);


Est-ce possible ?
Merci d'avance pour vos contributions ! Smiley smile

Lili
C'est ce que j'avais mis au tout début mais je rencontre le problème suivant : le but de mon appli est de charger dans un premier temps un menu avec jQuery, dont les liens cliqués font apparaître du contenu texte...
Or, comme mon menu est déjà chargé avec jQuery (fonction load), le fait de cliquer sur les liens et d'amener à nouveau un fichier chargé avec load pose problème...
Exemple de ce problème : http://forum.alsacreations.com/posting.php?action=newp&tid=26823&fid=5&p=1
Lili44300 a écrit :
Or, comme mon menu est déjà chargé avec jQuery (fonction load), le fait de cliquer sur les liens et d'amener à nouveau un fichier chargé avec load pose problème...

Si j'ai bien compris ton problème, il se reproduira quelle que soit la façon dont tu charges ton menu. Il faut que tu ajoutes les gestionnaires d'événement aux liens de ton menu une fois que celui-ci a été chargé, ou te que tu utilises la délégation d'événement (par exemple avec livequery).
Lili44300 a écrit :
J'ai aussi essayé avec live query : http://komplices.fr/test/index_test.html

Je n'ai pas le temps de regarder en détail, mais ton utilisation de livequery me paraît franchement louche. Tu as en juste besoin pour le clic sur les éléments du menu, non ?

Par ailleurs, as-tu conscience que ton site est totalement inutilisable sans JavaScript ?
J'ai un semblant de piste en utilisant le plugin jQuery live_bind : http://plugins.jquery.com/node/3700.

function chargeTxt(){
    
    $.live_bind("#descr_sousMenu ul li a", 'click',
	 
    function(){

        //récupérer l'id de chaque lien de type "<li><a>"
	var lien = $(this).attr("id"); 
	lien = lien.substr(1,lien.length-1);
 
        //test si la fonction réagit
	alert("ajax/contenus/"+lien+".html");
			
         $("#contenu").fadeIn(2000);							  
			
	//charger le fichier html dont l'identifiant correspondant à l'id

	$("#contenu").load("ajax/contenus/tourisme.html");
				 
	});
	
}