IE AJAX / Jquery问题 - 重定向到新页面而不是将其加载到div中

时间:2010-06-09 17:59:48

标签: jquery ajax json internet-explorer

我有一个这样的页面:

<form class="ajax" method="post" action="add_item.php">
[text input] [submit button]
</form>

[list any items the user has in a div here called #items]

当用户点击提交按钮时,会调用这样的函数:

$("form.ajax").live('submit', function(event) {
 params = $(this).serialize();
 $.post($(this).attr("action"), params, function(data){
 json = $.parseJSON(data);
 // do stuff based on the json results
  if(json.success.action == 'replace'){
   $(json.success.container).html(json.success.message);
  }
  else{
   $(json.success.container).prepend(json.success.message);
   $(json.success.container).find(".item:first").slideDown();
  }

 });

 event.returnValue = false;
 return false;
});

这应该将add_item.php加载到#items div中,它在FF,Chrome,Safari中工作正常,而不是IE。在IE(测试7和8)中,当我单击“提交”时,它将页面重定向到add_item.php,而不是将其加载到#items div中。 我尝试添加event.preventDefault();到功能结束但不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

哈!

在我发布之后立即找到了修复: 将函数移到$(document).ready下面并添加了event.stopPropagation();

答案 1 :(得分:0)

将方法“live”更改为“bind”