jquery ui可排序接收方法还原

时间:2015-12-03 17:17:19

标签: jquery jquery-ui

在一个简单的jquery ui可排序实现中,如果你在return false事件上有receive,那么在你做多次拖动之后,有时它会随机恢复这些项:

http://jsfiddle.net/neohunter/c14skcb2/1/

这样做:

1)将一个li从ONE移动到TWO。 2)从三个移动到一个

TWO上的ONE记录又回到了ONE。

这是一个错误吗?它只发生在源场明显空洞时。

1 个答案:

答案 0 :(得分:0)

错误是接收功能的返回值。 receive的含义是:当连接的可排序列表中的项目已被放入另一个列表时,将触发此事件。 因此,正确的用法是将其设置为true。 相反,防止默认行为对于像out这样的事件非常有用:

out: function(e, ui) {
if (ui.item.text() == 'One Element') {
    return false;  // prevent all these elements to move
} else {
    return true;
}



$( "ul" ).sortable( {
  connectWith: 'ul',
  receive: function(e, ui){
    return true;
  }
});

 ul{
            min-height: 30px;
            border: 1px solid red;
        }

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://code.jquery.com/ui/1.11.3/jquery-ui.js"></script>
<h3>One</h3>
<ul>
    <li>One Element</li>
    <li>One Element</li>
    <li>One Element</li>
</ul>

<h3>Two</h3>
<ul>
    <li>Two Element</li>
    <li>Two Element</li>
</ul>

<h3>Three</h3>
<ul>
    <li>Three Element</li>
</ul>
&#13;
&#13;
&#13;