删除项目并避免在可排序列表jQuery中重复

时间:2014-03-15 18:20:58

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

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

  1. 需要将项目从可拖动列表拖动到可排序列表。
  2. 根据需要删除可排序列表中的项目,方法是将其拖出。
  3. 可排序列表不应允许将重复值放入其中。
  4. 所以我已经提出了将项目恢复为可拖动列表的逻辑,如果它已经存在于可排序列表中并从可排序列表中删除项目。请参阅小提琴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>
    

1 个答案:

答案 0 :(得分:0)

上述问题的最佳答案是。     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);
},