2

如何ajaxStart使用以下方法为特定事件绑定函数:

$(document).ajaxStart(function () {
  alert("started");
});
$(document).ajaxStop(function () {
  alert("Ended");
});

尝试了此代码,但它会在自动完成启动时运行。

场景必须是这样的:每当我提交表单时,都会调用该函数。但是当我只是通过 ajax 使用自动完成来获取值时,ajaxStartajaxStop应该被调用。

4

3 回答 3

3

但是当我只是通过 ajax 使用自动完成来获取值时,不应该调用 ajaxStart 和 ajaxStop。

您可以创建一个布尔变量来跟踪用户是否正在键入,例如:

<script>
var isTyping = false;

// inside your autocomplete handler set isTyping to true

$(document).ajaxStart(function(){
    if (! isTyping) alert("started");
});
$(document).ajaxStop(function(){
    if (! isTyping) alert("Ended");
});

</script>
于 2012-06-13T07:58:51.343 回答
2

如果您使用主要功能和它的子功能,那就更好了。

$.ajax({
 url: 'url_to_page'
 beforeSend: function(req){ //Before the request is taking off},
 error: function(req){ //If there were a error},
 success: function(req){ //When it all was done}
});
于 2012-06-13T07:58:51.623 回答
1
 $.ajax({
      url :'your url',
      data: {
           //data to send if any
      },
      type: 'POST',
      success:function(msg){
           //eqv to ajaxstop if OK
      },
      beforeSend:function(){
           //before ajax starts
      },
      error:function(){
           //failure in ajax
      }
 });
于 2012-06-13T07:54:41.717 回答