11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je bloque sur une code tout simple, je veux changer le nom de ma div par un autre et je fais donc tout simplement :


	$("#switch").attr('id','test');


J'ai fait au plus simple pour le test mais ça ne marche pas.
La div existe bien avec l'id switch.

Bon si quelqu'un voit parce que là ça fait une journée que je bloque !

Merci
Hello. Une page en ligne ou plus d'élément aiderait. J'ai fait un jsFiddle de ton code, et ça marche (même si en terme de maintenance, ce n'est vraiment pas une très bonne idée).
J'avais oublié le site test !

Le script est dans /MailPopup/MailPopup.js

Il est utilisé dans le footer pour le lien 'Mentions'
Modifié par Mrezechiel (15 Mar 2012 - 17:55)
Salut

(Excuse moi pour la remarque mais il va falloir que tu fasses un peu plus d'efforts pour exprimer ta problématique la prochaine fois) Smiley smile

Toute fois ton problème n'est pas avec la commande jquery attr à laquelle tu faits appelle mais ton problème s'agit du temps dont tu faits appelle à la commande.

J'explique: Le #switch tu le charges apparemment par l'ajax (J'ai fait de l'effort pour le savoir car ce n'est pas mentionné dans ton explication, et il n'est pas dispo sur la page au premier coup Smiley smile ) et tu l'ajoutes au DOM par un append, ce qui t'arrive c'est que ta commande s’exécute avant que l'ajax reçoit sa réponse et avant que tu la rajoutes au DOM.

Pour remédier au problème, tu dois traiter ta question d'attribut sur le #switch après le append dans la fonction success de l'ajax, idem avec tout ce qui dépend du contenu chargé par l'ajax et ajouter au DOM,:

$.ajax	({
			
"url" : "./MailPopup/"+this.id+".php",
"type" : "GET",
"cache" : "true",
"dataType" : "html",
"success" : function(data)
{	
$('#'+idDiv+"Popup").append(data);
//Le traitement sur ton objet $('switch') ici
},
"error" : function(){
console.log( "Un probleme ajax pour la popup est survenu");
}
});


Bonne courage Smiley smile
Salut !

Alors c'était bien ça ! C'est la deuxième fois que je me fais avoir par l'asynchrone et j'espère la dernière ! Smiley biggrin

Merci à toi pour t'avoir donné tout ce mal. Je vois très bien la galère que ça a du être pour comprendre et j'aurais du mieux expliquer...


Encore merci pour tout