【问题标题】:jQuery sortable contaiment issuejQuery可排序包含问题
【发布时间】:2012-08-10 14:13:14
【问题描述】:

期望的效果:使用 jQuery.sortable 从包含中排除具有类不排序的行 (tr)。

当前代码: (包含:'父'/包含:'.sortable-body')

<table>
    <thead>
        <tr>
            <th>Field 1</th>
            <th>Field 2</th>
        </tr>
    </thead>
    <tbody class="sortable-body">
        <tr>
            <td>Sortable Field 1</td>
            <td>Sortable Field 2</td>
        </tr>
        <tr>
            <td>Sortable Field 1</td>
            <td>Sortable Field 2</td>
        </tr>
        <tr class="do-not-sort">
            <td colspan="2"><a href="#">Add Row</a></td>
        </tr>
    </tbody>
</table>

如何从容器中排除 tbody 末尾 (!) 的“请勿排序”行?以下方法无效:

包含:'.sortable-body tr:not(.menu-rij-toevoegen)'

【问题讨论】:

    标签: jquery jquery-ui-sortable containment


    【解决方案1】:

    您可以使用'items' 参数来识别可排序的项目 -- 该值应指定为 CSS 选择器。

    所以要提供否定标准(从组中排除元素),请使用:not() 伪类,如下所示:

    $('.sortable-body').sortable({ items: 'tr:not(.do-not-sort)' })​;​
    

    它在这里工作,你的精确标记:http://jsfiddle.net/MUEuW/2/

    更新:可能将最后一行排除在遏制之外的最佳方法是将其简单地包装在单独的 &lt;tbody&gt; 标记中。

    多个&lt;tbody&gt;s 是合法的。见:Can we have multiple <tbody> in same <table>?

    在此处更新小提琴:http://jsfiddle.net/MUEuW/3/

    ...或者您无法控制 HTML?

    【讨论】:

    • 收容与物品不同。事实上,我已经指定了这个 items 参数。正如问题中所述,我说的是“遏制”参数。
    • 谢谢!也许 更适合这个目的,但想法是一样的。
    【解决方案2】:

    看看我之前的帖子。 https://stackoverflow.com/a/9535584/665387

    您可以指定不可排序的列,例如

    $('#tableRoster').tablesorter({
            headers: {
                0: { sorter: false },
                4: { sorter: false }
            }
        });
    

    【讨论】:

    • jQuery.tablesort 与 jQuery.sortable 不一样 ;)
    猜你喜欢
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 2012-05-27
    • 2015-02-20
    相关资源
    最近更新 更多