Javascript jquery删除表行帮助
我有一些这样的代码来删除一行,然后显示一个对话框 第一次单击“删除id”时,会立即删除该行。 但在我尝试删除的任何后续行上,有时需要多次单击才能删除该行 有时会显示对话框,但行仍然存在 怎么了 编辑-数据库已正确更新,但行仍保留。有时它很不稳定有时我不得不点击两次Javascript jquery删除表行帮助,javascript,jquery,Javascript,Jquery,我有一些这样的代码来删除一行,然后显示一个对话框 第一次单击“删除id”时,会立即删除该行。 但在我尝试删除的任何后续行上,有时需要多次单击才能删除该行 有时会显示对话框,但行仍然存在 怎么了 编辑-数据库已正确更新,但行仍保留。有时它很不稳定有时我不得不点击两次 $(".delete-item").click(function () { var itemId = $(this).attr("id").split('-')[1]; var iTyp
$(".delete-item").click(function () {
var itemId = $(this).attr("id").split('-')[1];
var iType = $(this).attr("id").split('-')[0];
$.post('/User/Delete/', { id: itemId, itemType: iType },function (json) {
if (json.success) {
console.log("#row-"+itemId);
$("#row-"+itemId).hide('slow', function(){ $(this).remove(); });
//$("#dialog-success-delete").dialog("open");
} else {
if(json.error=="unknown"){
$("#dialog-unknown-error").dialog("open");
}
if(json.error=="unauthenticated"){
$("#dialog-unauthenticated").dialog("open");
}
}
});
验证选择器是否正确。使用Chrome,或Firefox+Firebug+Firequery和
console.log($“#row-”+itemId)
在您拥有.remove()
的地方。最有可能的原因是itemId与行ID不符合您的预期。这可能是一个时间问题-如果在单击另一行之前没有对动画进行回调,itemId将引用错误的项
改为:
$("#row-"+itemId).hide('slow', function(){ $(this).remove(); });
由于模态只是偶尔出现,我确信还有另一个问题
上面有一个关于失败的注释
带有jQuery.post()的请求返回
一个错误代码,它将无声地失败
除非脚本也调用了
这是我最好的猜测,因为服务器错误,成功回调永远不会发生。对于初学者,应该在隐藏发生后将对话框包含在函数中,以便它仅在行被隐藏时才会弹出。第二,上车后使用
此
选择器。这将验证您始终在最初单击的同一行上工作。最后,我在代码中没有看到click
方法,因此请确保您的操作也正确
此代码适用于我的快速测试:
$("#row-"+itemId).click(function() {
$(this).hide('slow', function() {
$(this).remove();
$("#dialog-success-delete").dialog("open");
});
});
原来问题是我在页面上有多行具有相同id!
我使用的是选项卡,而这些表位于单独的选项卡中 您应该显示代码的其余部分;我们无法看到您的删除按钮的单击处理程序,这可能是问题所在。即使行仍然存在,模式也始终显示…顺便说一句,上面添加了更多信息