jQuery Amigo-sorter拖放库无法正常工作

时间:2019-01-25 20:34:46

标签: jquery drag-and-drop

我的Amigo-sorter库有问题。当我选中复选框时,我正在向UL动态添加LI标签,随后我想通过拖放进行排序。在PC上工作正常,但是在使用手机时。当我第一次单击任何复选框时,它会添加LI标签并且可以拖动。但是接下来单击其他复选框不会执行任何操作。
有任何想法是什么问题吗?

请参阅jsfiddle:http://jsfiddle.net/2vf8rgc7/

<html>
<section class="wrapper">
    <div>
      <input type="checkbox" value="January">January</input>
    </div>
     <div>
       <input type="checkbox" value="February">February</input>
    </div>
     <div>
       <input type="checkbox" value="March">March</input>
    </div>
    </section>

   <ul class="sorter">
   </ul>
</html>

// javascript
$(document).ready(function(){

    $(document).on('change', '.wrapper', function(ev){
      let elem = document.createElement("li");
      elem.innerHTML = "<span>" + ev.target.value + "</span>";
      document.querySelector(".sorter").appendChild(elem);

       // after each change run the drag and drop function
      $('ul.sorter').amigoSorter({
        li_helper: "li_helper",
        li_empty: "empty",
        onTouchStart : function() {},
        onTouchMove : function() {},
        onTouchEnd : function() {}
        });

    });

  });

1 个答案:

答案 0 :(得分:0)

我找到了它,问题是在Amigo-sorter函数中有一个preventDefault,它使下一个更改事件不起作用。如果删除它,它可以工作,但是我仍然需要弄清楚在拖动时如何停止同时滚动。 我在考虑类似检查单击(触摸)位置的操作,如果该位置仅在UL内部,则运行preventDefault。