3

我有两个可排序的链表,称它们为列表 1 和列表 2。

列表 1 是用户可以选择的所有可能项目的列表,他将它们拖到他的购物篮中,即列表 2。

我想要做的是在列表 2(购物篮)中的每个项目旁边有一个按钮(或链接),单击该按钮将项目移回列表 1,而用户实际上不必将其拖到那里。

我知道我可以很容易地实现这一点,只需使用 remove() 从列表 2 中删除项目,然后使用 append() 或 after() 等将其添加回列表 1,但我希望移动动画。

有没有一种方法可以实现这一点,以便项目自动从一个列表“拖动”到另一个列表?如果是这样怎么办?

我环顾四周,但无济于事,但如果可以的话,该网站会好得多。因此,您可以提供的任何帮助将不胜感激。谢谢。

4

1 回答 1

6

好的,我想出了答案,所以我想既然我问了这个问题,我应该把答案放在这里,以帮助其他需要知道的人。

我有点愚蠢地寻找一种通过 jquery ui 来做到这一点的方法,因为我的列表是可排序的这一事实是无关紧要的,我只需要用户 jquery 来移动元素并为其设置动画。

下面的函数对此非常有用:

function moveAnimate(element, newParent){
    var oldOffset = element.offset();
    element.appendTo(newParent);
    var newOffset = element.offset();

    var temp = element.clone().appendTo('body');
    temp    .css('position', 'absolute')
            .css('left', oldOffset.left)
            .css('top', oldOffset.top)
            .css('zIndex', 1000);
    element.hide();
    temp.animate( {'top': newOffset.top, 'left':newOffset.left}, 'slow', function(){
       element.show();
       temp.remove();
    });
}

它是由 Davy8 在这个线程上提供的: JQuery - animate move DOM element to new parent?

于 2012-08-24T16:22:15.147 回答