11528 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'utilise une simple fonction jQuery pour déplacer des éléments du DOM car je n'ai pas accès au HTML :

jQuery(document).ready(function(){
	jQuery("li.review img.avatar").each(function() {
		jQuery(this).prependTo(jQuery(this).closest("li.review").find(".meta"));
	});
});


Il s'agit d'un plugin d'avis pour WordPress. Ma fonction fonctionne sur les 10 premiers avis chargés dans la page puis le plugin utilise AJAX pour charger 10 autres avis et ainsi de suite. Comme ces éléments ne sont pas encore dans le DOM, ma fonction jQuery ne fonctionne pas sur ces éléments chargés dynamiquement.

Quelle est la meilleure solution pour que ma fonction prenne en compte des éléments à venir dynamiquement ? Sachant que je n'ai pas non plus accès au code qui appel le contenu chargé en AJAX.

Merci pour votre aide.
o2xigen a écrit :

Sachant que je n'ai pas non plus accès au code qui appel le contenu chargé en AJAX.


aie aie aie, sans ça tu peux rien faire.
JENCAL a écrit :


aie aie aie, sans ça tu peux rien faire.


Arf, bon je vais voir avec les dév du plugin pour connaitre le contenu du code.
à titre d'exemple,

je rajoutais des "lignes" permettant d'ajouter du contenue dans ma base, chaque ligne avec un bouton "plus" permettant de créer en ajax une nouvelle ligne etc...

Pour chaque nouvelle ligne il y avait donc des nouveaux boutons qui devait reprendre la même activité JS. j'ai été obligé, dans le retour ajax de faire un .click() sur chaque nouveau bouton pour que celui ci soit pris en compte dans le DOM.

Du coup j'ai du intervenir vraiment à l'intérieur du retour ajax.
Pour le coup, mon bouton "plus" est toujours le même avec l'id #cr-show-more-reviews-id je me disais que je pourrais peut-être rajouter une fonction du style
jQuery(document).on('click', '#cr-show-more-reviews-id', function() {
ou quelque chose du genre (je suis pas encore très calé avec JS) et exécuter une nouvelle fois la manipulation des éléments sur cet évènement