2010-12-05 38 views
1

J'ai un ensemble d'images placées comme position:relative (en les affichant l'une à côté de l'autre).comment renvoyer un élément déplaçable à sa position initiale à l'aide de jquery

J'utilise ce code pour les glisser-déposer (volé dans la documentation de l'API jQuery, modifié selon mes besoins). Ce que j'essaye de faire est de retourner l'élément draggable à sa position initiale, après que l'utilisateur l'abandonne. Cependant, parce que mes éléments sont relativement positionnés, les premières coords de gauche sont les mêmes pour tous (ou c'est ce que je comprends de la documentation - je peux me tromper ici). Ainsi, bien que les images reviennent, elles s'empilent les unes sur les autres.

Qu'est-ce que je fais mal? Qu'est-ce que je suis supposé faire?

+0

Avez-vous essayé la position relative avec gauche et haut mis à 0px? – bozdoz

Répondre

8

Bien. Au lieu de faire cela par vous-même, utilisez l'option de retour du draggable. Depuis les quais jQuery UI:

$(".selector").draggable({ revert: true }); 
+0

Merci. C'est aussi un bon point. Cependant, je dois retourner les éléments dans leur position initiale mais pas toujours. Puis-je faire ça aussi? – xpanta

+0

Quand voulez-vous qu'ils soient retournés et quand ne pas être retournés? –

+0

quand le draggable ne tombe pas exactement sur le droppable je veux qu'il soit retourné. – xpanta

1

Vous pouvez faire connaître sa position relative, haut = 0px, et à gauche = 0px. Travaillé pour moi avec ce code:

$(function(){ 
$('#draggable').draggable().append('<a href=# class=exit>x</a>'); 
}); 
$(function(){ 
$('.exit').click(function(){ 
$('#draggable').css({ 
'top': '0px', 
'left': '0px', 
'position': 'relative' 
}); 
}); 
}); 
+0

Whoa! ça a marché! :-) – xpanta

+0

Content de l'entendre. :RÉ – bozdoz