2010-06-25 90 views
1

我有一个jQuery可排序元素和另一个可拖动元素。 使用可排序的接收事件,我得到新插入的对象并启动ajax查询将其写入数据库中。 但是,获得新元素的正确位置也不错。当我对接收事件进行可排序(“序列化”)时,新元素不在字符串中。我怎样才能找到插入元素的位置?jQuery .sortable + receive事件:获取插入元素的位置


可拖动:

<div id="docP1" class="docPopC">'; 
    for($x = 10; $x<30; $x++){ 
     if($block_ele[$x]) 
      echo '<p id="b_'.$x.'" class="doc_inhalt_popup">'.$block_ele[$x].'</p>'; 
    } 
echo ' 
</div> 

可排序:

<div id="aktiv"><input type="hidden" value="xx" /></div> 

的jQuery:

$("#aktiv").sortable({ 
connectWith: '#aktiv', 
forcePlaceholderSize: true, 
items: 'div.block', 
receive: function(event, ui){ 
    var nblock = ui.item.attr("id").split("_"); 

    $.get('inc_dokumente.php', { 
     index : 'n256', 
     aktiv : $("#aktiv input:first").val(), 
     id : rel, 
     block: nblock[1] 
    }, function(data){ 
     load_bloecke(); 
    }); 
}, 
update: function(event, ui){ 
    $.get('inc_dokumente.php', { 
     index : 'n257', 
     aktiv : $("#aktiv input:first").val(), 
     id : rel, 
     sort: $("#aktiv").sortable("serialize") 
    }, function(data){ 
     if(data) alert(data); 
     load_bloecke(); 
    }); 
} 
}); 

$(".docPopC p").draggable({ 
    connectToSortable: '#aktiv', 
    helper: 'clone', 
    revert: 'invalid', 
    zIndex: 9999999, 
    appendTo: 'body' 
}); 
+0

什么?请;) – TorbenL 2010-06-25 22:09:58

+0

请张贴一些代码。如果没有看到它,我会猜测放入可排序区域的元素的ID与所需的'setname_number'格式不匹配。 – 2010-06-27 20:46:39

回答

0

的问题是这个选项声明#aktiv作为排序

items: 'div.block' 

有了这个,你是说,只有拥有一流的div块应concidered排序里面#aktiv,所以当你$("#aktiv").sortable("serialize"),jQuery的不评估你投进它的项目,因为它是一个p元素。如果是这样的话,那么你的新掉落的物品也不会被排序与其他要素(div.block S),所以你是固定的几个问题)

可能的解决方案:

  • 制作#aktiv考虑在p元素的排序(items: 'div.block, p.doc_inhalt_popup
  • 让你拖到divs与类p元素block
    • (您可以跳过给DRA在你的HTML ggable类块,而是用jQuery添加它,当您收到物品)