2

テーブルの特定の列を選択するときに行を並べ替えるにはどうすればよいですか?

[...]
<tbody id="table_body">
    <tr>
        <td>A</td>
        <td>10</td>
    </tr>
    <tr>
        <td>B</td>
        <td>8</td>
    </tr>
    <tr>
        <td>T</td>
        <td>12C</td>
    </tr>
</tbody>
[...]

スクリプト:

var fixHelper = function (e, ui) {
    ui.children().each(function () {
        $(this).width($(this).width());
    });

    return ui;
};

$(function () {
    $("#table_body").sortable({
        helper: fixHelper
    }).disableSelection();
});

そのため、最初の列を選択したときにのみ行を並べ替えたいと思います。2 番目の列を選択しても、何も起こりません。出来ますか?

編集:

私はパウの言うことを試します:

$('#table_body td').mousedown(function (event) {
    if ($(this).attr("class") != "add_story") {
        event.stopImmediatePropagation();
    }
});

しかし、クラス「add_story」で列ごとに1行移動すると、すべての行が任意の列によって移動されます。

4

2 に答える 2

3

セルにクラスを追加することでこれを行うことができました。

次に、ドラッグを許可したくないセルで、mousedownイベントをオーバーライドします

このようなマークアップ:

<td class='grab'>A</td>
<td class='show'>10</td>

そして、次のようなスクリプト:

$(function () {
    $("tbody").sortable({
        helper: fixHelper,
        axis: "y"
    }).disableSelection();
    $('#Table_Body').not('.add_Story').mousedown(function(event){
        event.stopImmediatePropagation();
    });
});

軸 y は必要ありません。いいと思いました。

于 2013-03-21T19:08:48.037 に答える