Page 1 sur 1
Souci id draggable
Posté : 30 nov. 2012, 15:33
par cyrilj
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
Re: Souci id draggable
Posté : 30 nov. 2012, 15:47
par Saian
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]
Re: Souci id draggable
Posté : 30 nov. 2012, 16:02
par cyrilj
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.
Re: Souci id draggable
Posté : 30 nov. 2012, 16:26
par Saian
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).
Re: Souci id draggable
Posté : 30 nov. 2012, 17:20
par cyrilj
Super !!!!!! Merci, ça fonctionne

Satanées quotes ^^