【问题标题】:Sortable table rows using one column使用一列的可排序表行
【发布时间】:2015-09-05 14:48:27
【问题描述】:

我不确定标题是否描述了我的问题。我正在尝试制作可以内联更改值的表格(使用contenteditable)并且可以排序。

很遗憾,我不知道如何将这些功能组合在一起。 HTML 如下所示:

<table id="sort">
  <thead>
    <tr>
      <th>#</th>
      <th>Name</th>
      <th>Last Name</th>
      <th>Position</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td contenteditable="true">John</td>
      <td contenteditable="true">Doe</td>
      <td><img src="images/3-lines.png" /></td>
    </tr>
    <tr>
      <td>1</td>
      <td contenteditable="true">John</td>
      <td contenteditable="true">Doe</td>
      <td><img src="images/3-lines.png" /></td>
    </tr>
  </tbody>
</table>

JS 看起来像这样:

var fixHelperModified = function(e, tr) {
    var $originals = tr.children();
    var $helper = tr.clone();
    $helper.children().each(function(index) {
        $(this).width($originals.eq(index).width())
    });
    return $helper;
},
    updateIndex = function(e, ui) {
        $('td.index', ui.item.parent()).each(function (i) {
            $(this).html(i + 1);
        });
    };

$("#sort tbody").sortable({
    helper: fixHelperModified,
    stop: updateIndex
}).disableSelection();

我想保留 contenteditable 属性。用户应该能够通过拖动最右侧单元格上的“3-lines.png”图标来重新排序行。

有可能吗?

【问题讨论】:

  • 你可以使用任何插件吗?

标签: jquery sorting html-table contenteditable jquery-ui-sortable


【解决方案1】:

如果您可以添加一个 jquery 插件,请使用 DataTables,我认为它可以满足您的需求。

https://editor.datatables.net/examples/inline-editing/simple

【讨论】:

  • 刚想贴出来,代码也贴出来了!
  • 你应该已经发布了代码以启用最后一个 col 的排序:P 开个玩笑,如果 dataTable 是一个解决方案,请在这里阅读:datatables.net/reference/option/columnDefs.targets
  • 是的......毫无价值让它在小提琴中工作。我正在删除我的答案。
猜你喜欢
  • 2010-12-25
  • 2014-01-07
  • 2014-06-21
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多