我是 Javascript、jQuery 和所有客户端内容的新手。
我正在尝试在同一个表中拖放一个“表行”(每行都有一个标签和 2 个复选框)。我正在使用 jQueryUI 的可拖动和可放置。我遇到的问题是:
例如。当我单击/拖动第 1 行到第 3 行时,第 1 行(所有元素都合并为一个
<td>
)被设置在<td>
我拖动到的任何给定行的 中。拖动的行应该从它被拖动的地方移除。
我在这里包含了链接。
我是 Javascript、jQuery 和所有客户端内容的新手。
我正在尝试在同一个表中拖放一个“表行”(每行都有一个标签和 2 个复选框)。我正在使用 jQueryUI 的可拖动和可放置。我遇到的问题是:
例如。当我单击/拖动第 1 行到第 3 行时,第 1 行(所有元素都合并为一个<td>
)被设置在<td>
我拖动到的任何给定行的 中。
拖动的行应该从它被拖动的地方移除。
我在这里包含了链接。
您需要做的几件事:
不需要可拖动的(除非我误读了您要执行的操作)。您只需要在要排序的 tr 周围添加一个 tbody 标签,如下所示:
<table width="350px" id="regFields">
<thead>
<tr id="rowHeader">
<th align="left" colspan="1">Field Name</th>
<th align="center" colspan="1">Include</th>
<th colspan="1"><ul>Required</ul></th>
</tr>
</thead>
<tbody>
<tr class="row">
<td align="left" colspan="1">First Name</td>
<td align="center" colspan="1"><input type="checkbox" id="firstNameInclude" name="firstNameInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="firstNameRespReq" name="firstNameRespReq"></input></td>
</tr>
<tr id="row">
<td align="left" colspan="1">Last Name</td>
<td align="center" colspan="1"><input type="checkbox" id="lastNameInclude" name="lastNameInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="lastNameRespReq" name="lastNameRespReq"></input></td>
</tr>
<tr id="row">
<td align="left" colspan="1">Company</td>
<td align="center" colspan="1"><input type="checkbox" id="companyInclude" name="companyInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="companyRespReq" name="companyRespReq"></input></td>
</tr>
<tr id="row">
<td align="left" colspan="1">Email</td>
<td align="center" colspan="1"><input type="checkbox" id="emailInclude" name="emailInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="emailRespReq" name="emailRespReq"></input></td>
</tr>
</tbody>
</table>
另外,请注意,您不希望有多个具有相同名称的 id。相反,你会想要课程。我没有费心在这里修复它,但你会想要这样做。
jQuery 实际上非常简单:
$('#regFields tbody').sortable({
items: 'tr'
});
我正在选择表格和 tbody 元素(所以我没有得到标题)。Sortable 会自动完成其余的工作(可能甚至不需要 items 选项,但它不会受到伤害)。
希望这可以帮助!
火腿
Try using sortable instead of draggable
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://code.jquery.com/ui/jquery-ui-git.js"></script>
</head>
<body>
<div id="leftHalfContainer" style="display: block; float: left;">
<form name="setupRegForm" id="setupRegForm" method="post">
<table width="350px" id="regFields">
<thead>
<tr id="rowHeader">
<th align="left" colspan="1">Field Name</th>
<th align="center" colspan="1">Include</th>
<th colspan="1"><ul>Required</ul></th>
</tr>
</thead>
<tr id="row">
<td align="left" colspan="1">First Name</td>
<td align="center" colspan="1"><input type="checkbox" id="firstNameInclude" name="firstNameInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="firstNameRespReq" name="firstNameRespReq"></input></td>
</tr>
<tr id="row">
<td align="left" colspan="1">Last Name</td>
<td align="center" colspan="1"><input type="checkbox" id="lastNameInclude" name="lastNameInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="lastNameRespReq" name="lastNameRespReq"></input></td>
</tr>
<tr id="row">
<td align="left" colspan="1">Company</td>
<td align="center" colspan="1"><input type="checkbox" id="companyInclude" name="companyInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="companyRespReq" name="companyRespReq"></input></td>
</tr>
<tr id="row">
<td align="left" colspan="1">Email</td>
<td align="center" colspan="1"><input type="checkbox" id="emailInclude" name="emailInclude"></input></td>
<td align="center" colspan="1"><input type="checkbox" id="emailRespReq" name="emailRespReq"></input></td>
</tr>
</table>
</form>
</div><script>
$("table").sortable({
items: 'tr'
});
</script>
</body>
</html>