【问题标题】:Remove item and avoid duplicates in sortable list jQuery删除项目并避免在可排序列表jQuery中重复
【发布时间】:2014-04-21 02:16:51
【问题描述】:

我在 jQuery 中使用可拖动列表和可排序列表。 我的要求是

  1. 需要将项目从可拖动列表拖动到可排序列表。
  2. 如果需要,将可排序列表中的项目拖出。
  3. 可排序列表不应允许将重复值放入其中。

所以我想出了将项目恢复为可拖动列表(如果它已经存在于可排序列表中)并从可排序列表中删除项目的逻辑。请看小提琴http://jsfiddle.net/xDGUD/

问题: 复制问题的步骤

Setp 1:将“Item1”拖入可排序列表
第 2 步:从可排序列表中拖动“item1”并将其拉出,以便将其移除
第 3 步:再次将“Item1”从可拖动列表拖到可排序列表

我们会注意到,item1 将恢复为可拖动列表,同时我们将在可排序列表中获取 item1。

我希望项目在第 3 步之后进入可排序列表,并且仅当它已经存在时才恢复。

HTML

<div class="leftDiv">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
<div class="item item4">Item 4</div>
<div class="item item5">Item 5</div>
<div class="item item6">Item 6</div>
</div>
<div class="rightDiv">
</div>

【问题讨论】:

  • 使用可拖动元素的启动事件进行简单修复,我猜应该有更好的解决方法:jsfiddle.net/xDGUD/1
  • 谢谢@A.Wolff。像魅力一样工作:)
  • @A.Wolff 请考虑添加带有一些解释的答案,否则问题将永远无人回答。

标签: jquery jquery-ui-sortable jquery-ui-draggable


【解决方案1】:

上述问题的最佳答案是。 http://jsfiddle.net/xDGUD/1/

start: function (ev) {
var clazz = getClassNameWithNumberSuffix(ev.target);
 if ($('.rightDiv .' + clazz).length) 
$(ev.target).draggable("option", "revert", true);
else $(ev.target).draggable("option", "revert", false);
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-20
    • 2017-09-22
    • 2013-12-03
    • 2012-06-26
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多