首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -操作可排序列表中已删除的元素

jQuery -操作可排序列表中已删除的元素
EN

Stack Overflow用户
提问于 2010-01-20 01:54:06
回答 5查看 10.7K关注 0票数 7

我有一个拖拽列表(.field),你可以拖拽项目到一个可排序列表(.sortlist)中。我这样做是因为我不想以任何方式修改主列表(.field)。它工作得很好,除了我不知道如何操作可排序列表中被删除的字段。

我可以通过在droppable ()中的'drop:‘函数中使用以下代码从可拖动对象拖入可放入区域:

代码语言:javascript
复制
$(this).append('html code here to change content of dragged field');

但是,这在sortable()中不起作用。我的代码如下所示:

代码语言:javascript
复制
$(".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)。

知道我需要什么代码来引用被拖拽的项吗?

非常感谢,阿里。

EN

回答 5

Stack Overflow用户

发布于 2011-01-19 17:55:58

您可以在beforeStop事件中获得被拖动的项:

代码语言:javascript
复制
beforeStop: function (event, ui) { draggedItem = ui.item;},
receive: function (event, ui) { /* use draggedItem here*/ }

使用beforeStop事件而不是接收对我来说已经足够了:

代码语言:javascript
复制
beforeStop: function(event, ui) { 
        var myClassItem = $('.myClass', ui.item);
        myClassItem.bind('click', function(){ /*my function*/ });
    }
票数 10
EN

Stack Overflow用户

发布于 2010-01-21 00:29:19

我想我已经想好了。有点老生常谈,但似乎很管用!

我需要使用$('.sortlist li:last')来访问被拖动的元素...

票数 1
EN

Stack Overflow用户

发布于 2010-03-14 15:07:06

我遵循了你的思路,但是使用这种方法有一些but (有时在使用droppable +sortable时被删除的元素就消失了)。这是我想出来的一些东西:

代码语言:javascript
复制
$(".draglist").draggable({
  start: function(e, ui) {
    draggedItem = ui.item;
  }
});

$(".sortlist").sortable({
  receive: function(event, ui) {
    //do something with the 'draggedItem' here...
    var droppedElemTxt = draggedItem.text();
    var droppedElemId = draggedItem.attr('id');
  }
  , start: function(e, ui) {
    draggedItem = ui.item;
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2095691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档