如何使用jquery将可拖动项目返回到其初始位置

xpa*_*nta 1 javascript css jquery droppable draggable

我有一组图像position:relative(显示一个旁边的图像).

我使用此代码拖放它们(从jQuery API文档中窃取,根据我的需要进行修改).

$(function() {
        $( ".draggable" ).draggable({
                start: function(event, ui) {
                    // Show start dragged position of image.
                    var Startpos = $(this).offset();
                    $("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top);
                    pos_left = Startpos.left; //pos_left is global
                    pos_top = Startpos.top; //pos_top is also global
                },
                stop: function(event, ui) {
                    // Show dropped position.
                    var Stoppos = $(this).offset();
                    $("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);
                    $(this).css('position', "fixed"); //tried absolute and relative, too
                    $(this).css('left', pos_left);
                    $(this).css('top', pos_top); 
                }
        });

        $( ".droppable" ).droppable({
               drop: function( event, ui ) {
                   id = $(this).attr('id');    
               alert(id);
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

我想要做的是在用户放下它之后将可拖动元素返回到其初始位置.但是因为我的元素相对定位了最初的左边,顶部坐标对于所有这些都是相同的(或者这是我从文档中理解的 - 我可能在这里错了).因此,尽管图像返回,但它们实际上将每个图像堆叠在另一个上面.

我究竟做错了什么?我应该做些什么?

Mik*_*son 9

好.而不是自己使用可拖动的恢复选项.从jQuery UI停靠:

$( ".selector" ).draggable({ revert: true });
Run Code Online (Sandbox Code Playgroud)