有一个删除按钮,必须在IE中更新页面两次

时间:2014-03-10 02:43:41

标签: javascript internet-explorer

所以我在任何其他浏览器中都有一个“删除记录按钮”,它正常运行。从SQL中删除记录,并正确更新页面。我的想法是IE没有用js事件更新页面,并从视图中删除记录。如果我点击一次,不更新页面,两次它。点击一次,然后手动刷新页面,它正确地从视图中消失。有没有人听说IE这样做?调试器中没有任何内容告诉我错误。删除事件在下面,如果这是可能被错误处理的地方。 IE需要一个特殊的过滤器来处理这样的事件吗?谢谢!

// button in question creation
function create_delete_button( oObj ) {
return '<input type="button" value="Delete" onclick="DeleteItem(' + oObj.aData[0] + ')"/>';}

// post to db the deletion
function DeleteItem( id ) {
$.post( "/Data/DeleteItem?Id=" + id, GetUpdatedItems() );}

1 个答案:

答案 0 :(得分:1)

您展示的代码不会在任何浏览器中以任何方式更新页面 - 它根本不包含任何DOM操作或导航。 Ajax(我假设$.post()是jQuery Ajax方法)的重点在于它在不刷新页面的情况下发出请求。

所以我认为问题必须是你没有展示的GetUpdatedItems()函数,特别是你调用它的方式。请尝试删除GetUpdatedItems之后的括号,如下所示:

$.post( "/Data/DeleteItem?Id=" + id, GetUpdatedItems );
//                    parentheses removed from here ^

jQuery的$.post() method期望回调函数作为其第二个参数。也就是说,您应该传递对函数的引用,然后jQuery将在帖子完成后为您调用该函数。

您在问题的代码中正在做的是立即调用函数并将其结果传递给$.post(),这意味着GetUpdatedItems()之前执行 你做帖子删除项目。如果GetUpdatedItems()也执行了ajax请求,那么您无法保证首先返回哪个请求的时间。

  

“调试器中没有任何内容告诉我错误。”

我发现的特定问题不是JavaScript错误,因此不会在调试器中报告。它是有效的代码,它没有你想要的效果。