Bonjour,

J'ai un petit soucis avec la fonction toggle de JQuery.
Je viens de comprendre que toggle se fait en 2 étapes, si elle n'existe pas, la première fois il enregistre toutes les fonctions sans en exécuter une seule.
Au deuxième passage, à chaque clique, il exécute une fonction de toggle et passe à la suivante pour le prochaine fois.

Mon problème c'est qu'au premier passage, j'ai besoin que la première fonction soit appelé !

J'ai mis la fonction toggle sur un button, si on clique dessus (la première fois), il doit remplacer un span par une textarea.
Si on re-clique une 2nd fois, il faut l'inverse (textarea->span) + appel fct ajax.

Actuellement je suis obligé de cliquer 2 fois sur mon bouton pour que la première action soit effectuée (span->textarea).


Code d'exemple :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<div id="comment1">
Comment : <span>Ceci est un com !</span>
<input type="button" onclick="modifyComment('/com?id=23', 1, null)" value="Modify" />
<input type="button" onclick="deleteComment('/com?id=28', 1, null)" value="Delete" />
<div>
<div id="comment2">
Comment : <span>Ceci est un autre com 2 !</span>
<input type="button" onclick="modifyComment('/com?id=24', 2, null)" value="Modify" />
<input type="button" onclick="deleteComment('/com?id=26', 2, null)" value="Delete" />
<div>
...

et le Jquery :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function modifyComment(url, ind, responseData)
{
	var buttons = $('#comment'+ind+' > input:button');
	var span = $('#comment'+ind+' > span');
 
	buttons.eq(0).toggle(
	function() {
                var text = (responseData==null)?span.text():responseData.comment;
		span.replaceWith('<textarea name="comment">' + text + '</textarea>');
		buttons.eq(1).hide();
	},
	function() {
		var datas = (responseData==null)?new Object():responseData;			
		submitComment(url, ind, datas); -> qui fait un appel ajax puis remplace la textarea par un span.
	});
}


Comment faire pour que mon toggle soit bien enregistré avant le clique mais que les données à l'intérieur d'une des fonctions soient dynamiques ?

Merci d'avance.