ajaxComplete未启动

时间:2010-03-07 17:58:02

标签: jquery

我希望在完成Ajax调用后显示成功消息。 我试着做以下事情:

$("form.stock").submit(function(){
   $.post('/ajax/transactionupdate', params, function(data) {
     $this.append("success");
   }
});

问题是在回调函数中,似乎$(this)是未知的(不是实例的一部分)。

所以我尝试使用ajaxComplete / ajaxSuccess,但由于某些原因,一旦ajax完成,它们甚至都没有启动:

 $(this).ajaxComplete(function() {
        alert("STOP");
  });

然而,ajaxStart似乎确实有效:

  $(this).ajaxStart(function() {
        alert("START");
  });

有人能注意到这个问题吗?

谢谢! 乔尔

2 个答案:

答案 0 :(得分:0)

$("form.stock").submit(function(e){
   e.preventDefault()
   var el = this;
   $.post('/ajax/transactionupdate', params, function(data) {
     $(el).append("success");
   }
});

上下文是window,因为XMLHttpRequest方法由窗口拥有,内部由$.post调用。

答案 1 :(得分:0)

首先,最初的例子可以像这样重新完成:

$("form.stock").submit(function() {
  var stockForm = $(this);
  $.post('/ajax/transactionupdate', params, function(data) {
   stockForm.append("success");
  });
  return false;
});

您应该从“提交”处理程序返回false,以防止“本机”表单提交发生。