【问题标题】:jQuery sortable table cells canceljQuery 可排序表格单元格取消
【发布时间】:2017-09-04 00:45:31
【问题描述】:

我对可排序的<TD> 有问题。

$("table tbody").sortable({
   handle: "td[tyhi='0']",
   cancel: "td[tyhi='1']"
});

上面的代码不起作用... 如何排除带有tyhi="1"属性的<TD>

http://jsfiddle.net/tiitremmel/sFLFb/

【问题讨论】:

  • 你的代码有效:jsfiddle.net/sFLFb/1
  • 是的,它可以工作,但我需要它,这样你就不能把第一个或第二个放在最后一个位置。 tyhi="1" 必须始终排在最后。

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


【解决方案1】:

您想要对行进行排序,而不是对单元格进行排序,因此 html 应如下所示:

<table>
<tbody>
    <tr tyhi="0">
        <td>first</td>
    </tr>
    <tr tyhi="0">
        <td>second</td>
    </tr>
    <tr tyhi="1">
        <td>third</td>
    </tr>
</tbody>
</table>

​ 和javascript:

$("table tbody").sortable({
   items: "tr:not(tr[tyhi='1'])"
}).disableSelection();

【讨论】:

    【解决方案2】:

    我需要它,这样你就不能把它放在第一位或倒数第二位。 tyhi="1" 必须永远是最后一个

    在这种情况下,您需要将可排序/不可排序元素放在不同的包含元素中。在您的表格示例中,将必须出现在最后的 td 元素放在 tfoot 中最符合语义:

    <table>
        <tbody>
            <tr>
                <td tyhi="0">first</td>
            </tr>
            <tr>
                <td tyhi="0">second</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <td tyhi="1">third</td>
            </tr>
        </tfoot>
    </table>
    

    jQuery

    $("table tbody").sortable({
       handle: "td"
    });
    

    Example fiddle

    【讨论】:

    • 就我而言-您的解决方案是最好的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-05-10
    • 2016-06-06
    • 1970-01-01
    • 2021-03-19
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多