[RESOLU] Souci id draggable

Petit nouveau ! | 3 Messages

30 nov. 2012, 15:33

Bonjour à tous

j'essaie de récupérer l'id d'un objet draggable, ce qui parait apparemment très simple. J'ai beau tourner ma fonction dans tous les sens, rien ne s'affiche.

Code : Tout sélectionner

$( "#draggable4" ).draggable({ grid: [ 20,20 ], containment: '#animation', stop: function( event, ui ) { var objet_drop = $(ui.draggable); // L'élément drop var id_objet = objet_drop.attr('id'); // ID de l'élément drop alert( "Drag stopped!\n\nOffset: (" + id_objet + ")\n"); } });
Il me retourne toujours la valeur "undefined" au lieu de "draggable4".
Merci pour votre aide.

Cyril

Avatar du membre
Mammouth du PHP | 1609 Messages

30 nov. 2012, 15:47

Pourquoi pas un $(this).attr(id) ?
[javascript]$( "#draggable4" ).draggable({
grid: [ 20,20 ],
containment: '#animation',
stop: function( event, ui ) {
alert( "Drag stopped!\n\nOffset: (" + $(this).attr(id) + ")\n");
// voir même alert( "Drag stopped!\n\nOffset: (draggable4)\n"); étant donné que ce code s'applique à cet élément.
}
});[/javascript]
Développeur web depuis + de 20 ans

Petit nouveau ! | 3 Messages

30 nov. 2012, 16:02

TOujours l'erreur 'id is not defined'.
De plus, je veux que l'id soit générer dynamiquement (je le mettrai dans une fonction qui me récupèrera les coordonnées x et y).

La fonction finale devra ressembler à ceci :

Code : Tout sélectionner

<script> $(function( event, ui ) { $( "#draggable4" ).draggable({ grid: [ 20,20 ], containment: '#animation', stop: handleDragStop } }); }); function handleDragStop( event, ui ) { var offsetXPos = parseInt( ui.offset.left ); var offsetYPos = parseInt( ui.offset.top ); var objet_drop = $(ui.draggable); // L'élément drop var id_objet = objet_drop.attr('id'); // ID de l'élément drop $.ajax({ type: "GET", url: "majpos.php", data: "posX="+offsetXPos+"&posY="+offsetYPos+"&ID="+id_objet }); alert( "Drag stopped!\n\nOffset: (" + offsetXPos + ", " + offsetYPos + ", " + id_objet + ")\n"); } </script>
Et à chaque fois, l'id_objet me retourne "undefined" :/ alors que offsetXPos et offsetYPos s'affichent correctement.

Avatar du membre
Mammouth du PHP | 1609 Messages

30 nov. 2012, 16:26

Alors oui petite erreur dans mon code c'est avec des quotes autour de id (sinon id est considéré comme une variable qui n'existe pas donc undefined) :
[javascript]$(this).attr('id')[/javascript]

EDIT d'après la doc (et si je l'interprète comme il faut) ui a 3 propriétés helper, offset et position. Visiblement draggable n'en fait pas parti. La bonne propriété semblerai plutôt être helper mais à priori sans avoir testé je pense que le $(this) doit faire référence au bon élément (mais quand il sera dans la fonction handleDragStop peut être y aura t il une subtilité avec le this qui ne ferait plus référence au bon élément).
Développeur web depuis + de 20 ans

Petit nouveau ! | 3 Messages

30 nov. 2012, 17:20

Super !!!!!! Merci, ça fonctionne ;)
Satanées quotes ^^