etapes de toggle sur un bouton
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:
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:
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.