我有一个可拖动的列表(.field),你可以拖动和放大将项目中的项目放入可排序列表(.sortlist).我是这样做的,因为我不希望主列表(.field)以任何方式改变.它工作正常,除了我无法弄清楚如何操作可排序列表中的删除字段.
我可以通过在droppable()中的’drop:’函数中使用以下函数从可拖动区域到可放置区域执行此操作:
$(this).append('html code here to change content of dragged field');
但是这在sortable()中不起作用.我的代码看起来像这样:
$(".sortlist").sortable({ receive: function(event,ui) { var dropElemTxt = $(ui.item).text(); var dropElemId = $(ui.item).attr('id'); $(ui.item).replaceWith('<li class="Box" id="'+dropElemId+'">Updated field! '+dropElemTxt+'</li>'); } });
$(ui.item).replaceWith更改正在拖动的主字段,因此这不起作用.我尝试了$(this).replaceWith,但更新了可排序区域(.sortlist).
知道我需要什么代码来引用被拖动的项目吗?
非常感谢,
阿里.
解决方法
您可以在beforeStop事件中获取拖动的项目:
beforeStop: function (event,ui) { draggedItem = ui.item;},receive: function (event,ui) { /* use draggedItem here*/ }
使用beforeStop事件代替接收对我来说已经足够了:
beforeStop: function(event,ui) { var myClassItem = $('.myClass',ui.item); myClassItem.bind('click',function(){ /*my function*/ }); }