我有一个jQuery可排序元素和另一个可拖动元素。 使用可排序接收事件,我获得新插入的对象并启动ajax查询以将其写入数据库。 但是,获得新元素的正确位置也会很好。当我在receive事件上触发sortable(“serialize”)时,新元素不在字符串中。我怎样才能找到插入元素的位置?
可拖动的:
<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 :(得分:0)
将#aktiv
声明为可排序
items: 'div.block'
有了这个,你说只有带有类块的div应该在#aktiv中被认为是可排序的,所以当你执行$("#aktiv").sortable("serialize")
时,jQuery不会评估你放入它的项目,因为它是{{ 1}}元素。如果是这种情况,那么新删除的项目也不能与其他元素(p
s)排序,因此您正在解决几个问题)
可能的解决方案:
div.block
元素是可排序的(p
)items: 'div.block, p.doc_inhalt_popup
p
的{{1}}元素设为divs