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>