可排序的js none-jquery插件对div进行排序,但不对表进行排序

时间:2014-08-06 12:36:16

标签: javascript html sorting rubaxa-sortable

我正在使用这个Sortable plugin by Rubaxa,在我的帮助下,我想用“块”类对我的嵌套表进行排序。

HTML

<table id="table">
    <tbody>
        <tr class="block">
            <td>
                <table>
                    <tr>
                        <td>item 1</td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr class="block">
            <td>
                <table>
                    <tr>
                        <td>item 2</td>
                    </tr>
                </table>
            </td>
        </tr>
    </tbody>
</table>
<div id="div">
    <div class="block">1</div>
    <div class="block">2</div>
</div>

JS

var el = document.getElementById('table'),
    newEl = document.getElementById('div');
new Sortable(el, {
    draggable: '.block'
});
new Sortable(newEl, {
    draggable: '.block'
});

但是我不能让它与表一起工作。 这个插件是否只允许直接儿童排序?是因为表的结构不起作用?或者是出于其他原因?

jsFiddle link

2 个答案:

答案 0 :(得分:2)

它仅适用于一级儿童:

<强>解决方案

广告tbody

的ID
<tbody id="rows">

使用此ID进行排序。

el = document.getElementById('rows')

Working example

答案 1 :(得分:0)

我也有同样的问题,在这里找到了一个很好的答案。

<tbody id="sortrows">

var sort = new Sortable(sortrows, {
onSort: function (evt) {
    console.log(evt.oldIndex + ' -> ' + evt.newIndex);
    document.getElementById('displayText').innerHTML=evt.oldIndex + ' -> ' + evt.newIndex;
} });

添加Working example