Jquery 仅当拖动特定列时才可对行进行排序

Jquery 仅当拖动特定列时才可对行进行排序,jquery,Jquery,选择表的特定列时,如何对行进行排序 [...] <tbody id="table_body"> <tr> <td>A</td> <td>10</td> </tr> <tr> <td>B</td> <td>8</td> </tr> <t

选择表的特定列时,如何对行进行排序

[...]
<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>
[...]
因此,我只希望在选择第一列时对行进行排序。如果选择第二列,则什么也不会发生。可能吗

编辑:

我试着听鲍威尔说:

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

但是,当我用类“add_story”按列移动一行时,每一行都会被任何列移动。

我可以通过向单元格中添加类来实现这一点

然后在不允许拖动的单元格中,覆盖
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不是必需的,我只是想它会很好。

您也可以使用手柄选项:

给你的第一列一个类似“sortHandle”的类,然后在你的脚本中你可以设置handle选项,只有在点击该列时才进行排序

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

    return ui;
};

$(function () {
    $("#table_body").sortable({
        helper: fixHelper,
        handle: '.sortHandle',
    }).disableSelection();
});
HTML:


A.
10
B
8.
T
12C

这里有一个例子:

Pow,我们有一个问题。我忘了我在第二栏有动态类。因此,在第二个td的每一行中都有一个类“something_1”、“something_2”等等……这不是问题,只要使用部分属性选择器,或者在空格后添加另一个要使用的类:
something_1 show
something_2 show
等等。我将提出问题,我放了什么,发生了什么。
var fixHelper = function (e, ui) {
    ui.children().each(function () {
        $(this).width($(this).width());
    });

    return ui;
};

$(function () {
    $("#table_body").sortable({
        helper: fixHelper,
        handle: '.sortHandle',
    }).disableSelection();
});
   <tbody id="table_body">
        <tr>
            <td class="sortHandle">A</td>
            <td>10</td>
        </tr>
        <tr>
            <td class="sortHandle">B</td>
            <td>8</td>
        </tr>
        <tr>
            <td class="sortHandle">T</td>
            <td>12C</td>
        </tr>
    </tbody>