4

我想知道基本拖放功能的“它是如何工作的”和“它应该如何设计和实现”方面。

我还没有实现过这样的功能。我计划为我的一个项目这样做,并且我对如何实施它有一些想法。我想确保我走在正确的道路上,并且你们很可能对此事也有话要说……

假设我有 5 个元素列出如下并从数据库中获取;

<div id="1">this is content for 1</div>
<div id="2">this is content for 2</div>
<div id="3">this is content for 3</div>
<div id="4">this is content for 4</div>
<div id="5">this is content for 5</div>

由于这是从数据库中提取的,我们知道它有一个名为“sequence”或“order”的字段来区分我们要输出的顺序。我们还假设当前“序列”列的值与 div 的 ID 相同。所以:1, 2, 3,45分别。

我的问题和想法;

如果我将 div4拖放到1and之间2;从那里开始的步骤是什么?例如:

  1. 确定被拖动的 div 的 id(我们称之为div-a

  2. div-a在这种情况下,确定在之后(或之前)插入的 div 的 id, 因此在 div 之后id 1(我们称之为div-b

  3. 更新div-a数据库中的序列并将其设置为当前的序列div-b

在这一步之后,我很困惑......我是否计算所有 div 并根据 div 的任何顺序,我是否相应地更新数据库?还是我完全错了,还有其他方法吗?


感谢您的回答,但我知道有插件和其他东西可以完成这项工作,但我只对它的逻辑部分感兴趣。

4

3 回答 3

1

我相信 jquery 为您提供了一种基于 id 获取订单的方法?

我一直这样做的方式是每次发生动作时,获取当前订单,通过 ajax 将其发送回我的应用程序。然后我的应用程序只是从给出的内容中解析出 id 并更新每个项目的订单值。

于 2009-04-28T16:02:08.373 回答
1

http://jqueryui.com/demos/sortable/

    $("#col1").sortable({
        placeholder: "top",
        forcePlaceholderSize: true,
        revert: true, 
        update: function() { 
                $.ajax({
                     type: "GET",
                     url: "/request.php",
                     data: "data="+$(this).sortable("toArray")+"",
                     success: function(msg){ }
                        });         
             }
    });

toArray 是您的 div id 的序列

于 2009-04-29T12:50:50.137 回答
0

除非您这样做是为了自己的教育,否则我建议您使用 jQueryUI。

它具有拖放功能,除其他外,这可能会帮助您了解 DaD 的本质,让您实现特定于您的问题的部分。

于 2009-04-29T12:42:10.657 回答