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.
Partager