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

なぜこれが事実なのかはわかりませんが、ここに私が見つけたものがあります。

receive イベントでは、ソート可能なリストで作成されている実際のアイテムにアクセスできません。Helper は、ドラッグにのみ使用されるクローンを指します。item は、クリックしてドラッグした元のアイテムです。

ただし、beforeStop イベントは receive イベントの直前に発生します。beforeStop では、アイテムは実際にはリスト内のアイテムです。したがって、 beforeStop でアイテムを保存してから、受信で使用できます。

デモはこちら: http://jsfiddle.net/kcg29/

于 2011-05-06T03:33:36.073 に答える