Javascript jquery删除表行帮助

Javascript jquery删除表行帮助,javascript,jquery,Javascript,Jquery,我有一些这样的代码来删除一行,然后显示一个对话框 第一次单击“删除id”时,会立即删除该行。 但在我尝试删除的任何后续行上,有时需要多次单击才能删除该行 有时会显示对话框,但行仍然存在 怎么了 编辑-数据库已正确更新,但行仍保留。有时它很不稳定有时我不得不点击两次 $(".delete-item").click(function () { var itemId = $(this).attr("id").split('-')[1]; var iTyp

我有一些这样的代码来删除一行,然后显示一个对话框

第一次单击“删除id”时,会立即删除该行。 但在我尝试删除的任何后续行上,有时需要多次单击才能删除该行

有时会显示对话框,但行仍然存在

怎么了

编辑-数据库已正确更新,但行仍保留。有时它很不稳定有时我不得不点击两次

$(".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!
我使用的是选项卡,而这些表位于单独的选项卡中

您应该显示代码的其余部分;我们无法看到您的删除按钮的单击处理程序,这可能是问题所在。即使行仍然存在,模式也始终显示…顺便说一句,上面添加了更多信息