禁用可排序列表中的排序

时间:2013-11-11 06:59:45

标签: jquery-ui-sortable javaquery

我正在看这个“Sortable example”,我可以看到用户可以重新排列数字,上面例子的来源:

  <!doctype html>
  <html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Sortable - Display as grid</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <style>
  #sortable { list-style-type: none; margin: 0; padding: 0; width: 450px; }
  #sortable li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 100px; height: 90px; font-size: 4em; text-align: center; }
  </style>
  <script>
  $(function() {
    $( "#sortable" ).sortable();
    $( "#sortable" ).disableSelection();
  });
  </script>
</head>
<body>

<ul id="sortable">
  <li class="ui-state-default">1</li>
  <li class="ui-state-default">2</li>
  <li class="ui-state-default">3</li>
  <li class="ui-state-default">4</li>
  <li class="ui-state-default">5</li>
  <li class="ui-state-default">6</li>
  <li class="ui-state-default">7</li>
  <li class="ui-state-default">8</li>
  <li class="ui-state-default">9</li>
  <li class="ui-state-default">10</li>
  <li class="ui-state-default">11</li>
  <li class="ui-state-default">12</li>
</ul>


</body>
</html>

是否可以对此示例进行排序,以便将数字从最小到最大排序,并且不允许用户重新排列数字?例如,如果我尝试拖动12并将其放在1之前,它会自动返回其原始位置。

谢谢

1 个答案:

答案 0 :(得分:0)

不要调用sortable,只需按相反的顺序对列表进行排序。可排序功能允许用户拖动项目。如果您没有调用disableSelection,那么列表中的项目将是可选择的。

$(function() {
    try {
            var html = $('#sortable').html();
            var arr = html.split('</li>');
            html = '';
            for (var i = arr.length - 1; i >= 0; --i) {
                    html += arr[i] + "</li>";
            }
            $('#sortable').html(html);
    } catch (e) {
            alert(e);
    }

});