jquery可排序?

时间:2012-09-13 01:22:25

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

所以我想知道为什么我有一个嵌套列表,如

<ul id="categories">
  <li> <span class="categoriesSort">[Move]</span>Category
    <ul id="tasks">
      <li><span class="handle">[Move]</span>Task</li>
      <li><span class="handle">[Move]</span>Task</li>
    </ul>
  </li>
  <li> <span class="categoriesHandle">[Move]</span>Category
    <ul id="tasks">
      <li><span class="handle">[Move]</span>Task</li>
      <li><span class="handle">[Move]</span>Task</li>
    </ul>
  </li>
</ul>

第二类必须在顶部才能使其任务可编辑.....我可以移动这两个类别。但一个人必须在最前面。现在,如果我将第二个类别移动到列表顶部并编辑其任务,我可以将其拖到底部并继续编辑任务列表,但如果我刷新页面,那么这些任务将不再可编辑。

 jQuery(function() {
    return $('#categories').sortable({
      axis: 'y',
      handle: '.categoriesSort',
      update: function() {
        return $.post($(this).data('update-url'), $(this).sortable('serialize'));
      }
    });
  });

  jQuery(function() {
    return $('#tasks').sortable({
      axis: 'y',
      handle: '.handle',
      update: function() {
        return $.post($(this).data('update-url'), $(this).sortable('serialize'));
      }
    });
  });

任何想法? - ajax请求正常工作。除非第二类是最重要的,否则我无法对它的任务进行排序。

1 个答案:

答案 0 :(得分:1)

您的问题是因为您正在重复使用UL #tasks的ID值。

您无法在文档中复制ID。 http://www.w3.org/TR/html401/struct/global.html#h-7.5.2

您看到的原因之一:js和css将仅评估它使用该ID值找到的第一个元素,而不是所有这些元素。这就是课程的用途。

http://jsfiddle.net/rlemon/xYGsA/这是一个将ID更改为类的示例。