2017-08-29 75 views
0

我为此奋斗了几个星期,我尝试了很多方法。AJAX继续加载 - 我该如何绑定或防止这种情况?

这是一个ajax搜索功能。如果我开始搜索,它会继续加载几次。我搜索得越多,载入的次数就越多。

这是我的搜索功能:

$("#q").on('submit', function (e) { 


     e.preventDefault(); // avoid to execute the actual submit of the form. 

     $("#q").off('submit'); 

     console.log('#################'); 
     console.log('search Initiated'); 
     console.log('#################'); 

     var frm = $('#q'); 
     var url = frm.attr('action'); 

     if (reloaddiv === undefined) { 
      var reloaddiv = "reload"; 
     } 
     if (reloadurl === undefined) { 
      var reloadurl = frm.attr('action'); 
     } 

     $.ajax({ 
      type: frm.attr('method'), 
      url: frm.attr('action'), 
      data: frm.serialize(), 
      beforeSend: function() { 
       console.log('Search: Preparing'); 
       prepareBeforeAjax(reloaddiv, reloadurl); 
      }, 
      success: function (data) { 
       $('.records').html(data); 
       console.log('Search: Success'); 
      }, 
      complete: function() { 
       console.log('Search: Complete'); 
       hideModalIfVisible(); 
      }, 
      always: function() { 
       $("#q").on('submit', e); 
      } 
     }) 

    }); 

这是我的控制台日志

################# 
subscriptions:1037 search Initiated 
subscriptions:1038 ################# 
subscriptions:1055 Search: Preparing 
subscriptions:941 prepareBeforeAjax 
subscriptions:1036 ################# 
subscriptions:1037 search Initiated 
subscriptions:1038 ################# 
subscriptions:1055 Search: Preparing 
subscriptions:941 prepareBeforeAjax 
subscriptions:1036 ################# 
subscriptions:1037 search Initiated 
subscriptions:1038 ################# 
subscriptions:1055 Search: Preparing 
subscriptions:941 prepareBeforeAjax 
subscriptions:1036 ################# 
subscriptions:1037 search Initiated 
subscriptions:1038 ################# 
subscriptions:1055 Search: Preparing 
subscriptions:941 prepareBeforeAjax 
subscriptions:1060 Search: Success 
subscriptions:975 ------------ 
subscriptions:976 initReady Initiated 
subscriptions:977 ------------ 
subscriptions:1063 Search: Complete 
subscriptions:1060 Search: Success 
subscriptions:975 ------------ 
subscriptions:976 initReady Initiated 
subscriptions:977 ------------ 
subscriptions:1063 Search: Complete 
subscriptions:1060 Search: Success 
subscriptions:975 ------------ 
subscriptions:976 initReady Initiated 
subscriptions:977 ------------ 
subscriptions:1063 Search: Complete 
subscriptions:1060 Search: Success 
subscriptions:975 ------------ 
subscriptions:976 initReady Initiated 
subscriptions:977 ------------ 
subscriptions:1063 Search: Complete 

initReady - 这基本上只是一个JavaScript函数我每次AJAX后调用后 - 我这样做是因为当使用模态时,我不必全部加载。

回答

-1

功能看起来一直自称是因为:

always: function() { 
    $("#q").on('submit', e); 
} 
+0

我的意思是,对我来说,看起来更像是一个事件绑定,但即使是这样,它是无效的,因为'e'不一个函数。它肯定不会再触发事件。 –

+1

你是对的!非常感谢 –

相关问题