Вот как я это делаю без использования jQuery UI. Предполагается, что вы ввели .draggable
также как position: absolute
:
var $draggable = null, startX, startY;
$('.draggable').live('mousedown', function(ev) {
$draggable = $(this);
var pos = $draggable.position();
startX = ev.pageX - pos.left;
startY = ev.pageY - pos.top;
return false;
});
$(document).bind('mousemove', function(ev) {
if ($draggable) {
$draggable.css({ left: ev.pageX - startX, top: ev.pageY - startY});
return false;
}
});
$(document).bind('mouseup', function(ev) {
if ($draggable) {
$draggable = null;
return false;
}
});