1

我有 2 个列表:

<h3>Available page layouts</h3>

<ul id="pagepool" class="connectedSortable">
    <li id="I1" class="ui-state-default"></li>
    <li id="I2" class="ui-state-default"></li>
    <li id="I3" class="ui-state-default"></li>
    <li id="I4" class="ui-state-default"></li>
    <li id="I5" class="ui-state-default"></li>
</ul>

<h3>Document structure</h3>

<ul id="docstruct" class="connectedSortable"></ul>

“pagepool”列表中的项目被拖(克隆)到“docstruct”列表中,然后可以手动排序。docstruct 列表中可能存在重复的页面样式(具有重复的 id 属性)。

我想做的是通过 php 文件/ajax 请求一个唯一的 md5 哈希,并在删除项目后将该哈希添加到被删除项目的 rel 属性中。到目前为止,我尝试过的所有内容都会更新“pagepool”原始项目。

如何修改它以仅针对克隆项目?:

$( "#pagepool li" ).draggable({

           connectToSortable: '#docstruct',
           helper: 'clone',
           revert: 'invalid',
           opacity: '.7'

                              });

$( "#docstruct" ).sortable({
           placeholder: "ui-state-highlight",
           revert: true,
           receive: function(event, ui) {
           $.get('ajax/uniqid.php', function(data){ui.item.attr('rel', data)})     
                                                }       
                          });
4

1 回答 1

0

不知道为什么会这样,但这是我发现的。

在接收事件中,您无法访问可排序列表中正在创建的实际项目。Helper 指向一个仅用于拖动的克隆,item 是您单击要拖动的原始项目。

但是, beforeStop 事件在接收事件之前触发。在 beforeStop 中,item 实际上就是列表中的 item。因此,在 beforeStop 中,您可以保存该项目,然后在接收中使用它。

在这里演示:http: //jsfiddle.net/kcg29/

于 2011-05-06T03:33:36.073 回答