javascript - HTML 表格 onDrop 事件
问题描述
我有一个 HTML 表,我有一个鼠标按下事件和一个鼠标按下事件,并且拖放行效果很好。我唯一的问题是我不知道如何确定放置何时完成。我需要循环表行并使用它们的行 ID 将排序顺序保存到数据库中。如果我使用鼠标向上调用它,则不会发生下降。我已经看到一个 div 可以有一个 dropend 或 onDrop 事件,但不能有一个表。这可能吗?
解决方案
我能够挖掘更多并想出了一些有用的东西
$(function () {
$("#citationAreaTopTable tbody").sortable({
appendTo: "parent",
helper: getHelper, // "clone",
stop: function (event, ui) {
var attr = $(ui.item).attr('id');
var tableName = $(this).parent().attr("id");
$('#' + tableName + ' tr').each(function (event, ui) {
$(this).css('backgroundColor', 'white');
});
if (tableName == "citationAreaTopTable") {
var table = document.getElementById('citationAreaTopTable');
var pmidsText = '';
for (var i = 1; i < table.rows.length; i++) {
if (table.rows[i].cells.length) {
var id = (table.rows[i].id.substring(table.rows[i].id.indexOf("-") + 1));
pmidsText += id + ','
}
}
pmidsText = pmidsText.slice(0, -1);
$('#citationAreaTopList').html('<b>Selected PMIDS: </b>' + pmidsText);
}
},
update: function (event, ui) {
var tableName = $(this).parent().attr("id");
var id = '';
var index = 0;
if (tableName === '"citationAreaTopTable") ') {
//do something
}
$('#' + tableName + ' tr').each(function (e, u) {
$(this).css('backgroundColor', 'white');
if (u.id) {
if (u.id.slice(index).length > 0) {
id += u.id.slice(index) + ',';
}
}
});
Save_Sort(id);
}
}).disableSelection();
这使我可以循环表格并拉出行 ID
推荐阅读
- angular - 如果它是响应式表单的表单控件,则在滑动垫滑块时更新表单数据
- javascript - Angular - 单元测试按键
- java - 如何定期重复异步任务?
- angular - 不使用“设置”就无法访问 Angular 输入变量
- botframework - 如何让用户单击以在浏览器 C# BotFramework SDK3 中打开 CSV 文件
- c# - GridView 格式问题
- java - 如何使用子弹符号显示为输出?
- excel - 将 OK 按钮与基础 ListBox 链接的快捷方式
- c - C 函数外没有操作语句
- python - 我们可以在 Cypher 中使用 MERGE 来更新节点属性吗?