Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get position x and y from jQuery ui draggable?

Here an example http://jsfiddle.net/naqbq/

How do I grab current position for x and y after re-position the image?

<input type="hidden" name="source_x" id="source_x" />
<input type="hidden" name="source_y" id="source_y" />
like image 770
Unknown Error Avatar asked Dec 02 '22 00:12

Unknown Error


1 Answers

In the stop callback, you can use ui.helper to access the dragged element. Then use offset on it, as Brad suggested:

$("#image").draggable({
    stop:function(event,ui) {
        var wrapper = $("#wrapper").offset();
        var borderLeft = parseInt($("#wrapper").css("border-left-width"),10);
        var borderTop = parseInt($("#wrapper").css("border-top-width"),10);
        var pos = ui.helper.offset();
        $("#source_x").val(pos.left - wrapper.left - borderLeft);
        $("#source_y").val(pos.top - wrapper.top - borderTop);
        alert($("#source_x").val() + "," + $("#source_y").val());
    }
});​

Then, it's just a matter of adjusting it to your wrapper - subtracting its offset and its border's width - and setting it to your input's val. (sorry for hardcoding the border, but I couldn't extract it using css) (Edit: there it is! found the solution in another question)

http://jsfiddle.net/mgibsonbr/naqbq/4/

like image 67
mgibsonbr Avatar answered Dec 05 '22 18:12

mgibsonbr