В stop
обратного вызова, вы можете использовать ui.helper
для доступа к перетаскивается элемент. Затем используйте offset
на него, как это было предложено Brad:
$("#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());
}
});
Тогда, это просто вопрос настройки его на обертку - вычитание его смещение и ширина ее границ - и установить его на ваш вход-х val
.
(извините за границу жестко прописывать, но я не мог извлечь его с помощью
css
)
(Edit: там можно найти решение в another question)
http://jsfiddle.net/mgibsonbr/naqbq/4/
Спасибо @mgibsonbr :) –