2011-05-10 6 views
1

J'ai jquery draggable/droppable travailler avec le jeu d'options de confinement et d'assistance. Ce que je voudrais faire est de stocker les paramètres haut et à gauche de l'élément abandonné dans deux variables.position Jquery dragable - clone

Je l'ai réalisé dans l'exemple suivant (faites glisser l'icône du nouveau document dans la boîte) mais la position rapportée est la position par rapport à l'icône d'origine au lieu de la DIV parente. L'icône et la boîte droppable sont toutes deux positionnées de façon absolue.

http://www.instructuk.com/drop.php

Est-ce que quelqu'un sait comment obtenir la position correspondant au parent au lieu de l'icône?

Répondre

8

Vous devez faire le calcul vous-même:

var 
    draggableDocumentOffset = ui.helper.offset(), 
    droppableDocumentOffset = $(this).offset(), 
    left = draggableDocumentOffset.left - droppableDocumentOffset.left, 
    top = draggableDocumentOffset.top - droppableDocumentOffset.top; 

alert('Item was dropped at - Left: ' + left + ', Top: ' + top); 
+0

C'est génial, merci Brian. – Rob

0

Il est peut-être pas la plus belle solution, mais vous pouvez obtenir la position de la baisse du document par:

x=event.pageX; 
y=event.pageY; 

Et puis utilisez les coordonnées de la zone droppble à Soustraire x et y.

dx=$("#droparea").offset().left;  
dy=$("#droparea").offset().top;  
var left=x-dx;   
var top=y-dy; 

K

+0

Notez que la sortie de ce calcul change en fonction de l'endroit où vous placez votre curseur sur l'icône lorsque vous avez commencé la traînée. – brianpeiris

+0

C'est vrai. Votre solution est beaucoup mieux. – kwicher