2011-02-03 7 views
1

일부 jQueryStop을 구현하는 데 필요한 jQuery 플러그인이 있습니다. 아래 코드는 구조를 보여주는 스 니펫입니다 (100 %가 아닐 수도 있음).jQuery ajaxStop in ajax success

ajaxStop을 전역 함수로 구현해야 할 경우를 대비하여 필자의 함수가 메소드로 설정되는 방법을 보여주었습니다. 현재 설정에서 어떻게 수행 할 지 확신 할 수 없습니다.

내 아약스 응답이 성공적으로 다시 시작 되더라도 가끔 ajaxStop이 실행되지 않는 문제가 있습니다.

  1. 아약스 성공 콜백에서 ajaxStop을 호출 할 수 있습니까? 내가 $에 ajaxStop(). ajaxStop 또는 $ (이) .ajaxStop
를 호출해야합니다 어떤 요소
  • 어떤 도움 주셔서 대단히

    감사합니다!

    Mac에서 ajaxStop을 사용하는 데 문제가있는 사람이 있습니까? 이것이 항상 작동하지 않는 이유에 대한 해결책을 찾을 수 없습니다. 증가 각 버튼 클릭에 카운터 내가 대신 AjaxStop의 카운터를 사용하여 종료

    그리고 :.

    나는 ajaxStop이에

    (function($) { 
    
    $.fn.doRentalButtons = function($params) { 
    
        var newMethods = { 
    
         startAction:function() { 
          var $button = $('a.button'); 
          $button.click(function(){ 
           var params = {one:'something',two:'morethings'} 
           $(this).doAjax(params); 
          }); 
         }, 
    
         doAjax:function(params) { 
    
          $current_button = $(this); 
          $container_div = $('#container'); 
    
          $.ajax({ 
           type: 'POST', 
           url: 'whatever.html', 
           data: params, 
           success: function(data) { 
            //dostuff 
    
            var jQueryObject = 
            if (global_var_hide == 0) { 
             $(this).afterPostRequests($current_button); 
            } 
           }() 
          }); 
         }, 
    
         afterPostRequests:function($current_button) { 
          $().ajaxStop(function(){ 
           $(this).show(); 
           $(this).positionDiv($current_button); 
          }); 
         } 
        }; 
    
        $.each(newMethods, function(i) { 
         $.fn[i] = this; 
        }); 
    }; 
    
    })(jQuery); 
    
  • 답변

    2

    그냥 업데이 트 :(매우 신뢰할 수 없습니다 생각합니다. 카운터 오프 아약스 성공/오류 마이너스 1.

    그럼 난 단지 내 아약스 요청을 실행하면 카운터 == 0

    T 그는 내가 필요한 것을 위해 일하는 것 같다. 그러나 이것은 일시적인 해결책처럼 보이고 아마 더 좋은 방법이있을 것입니다.

    (function($) { 
    
    $.fn.doRentalButtons = function($params) { 
    
        var ajax_busy = 0; 
    
        var newMethods = { 
    
         startAction:function() { 
          var $button = $('a.button'); 
          $button.click(function(){ 
           var params = {one:'something',two:'morethings'} 
           $(this).doAjax(params); 
          }); 
         }, 
    
         doAjax:function(params) { 
    
          $current_button = $(this); 
          $container_div = $('#container'); 
    
          ajax_busy++; 
    
          $.ajax({ 
           type: 'POST', 
           url: 'whatever.html', 
           data: params, 
           success: function(data) { 
            //dostuff 
    
            ajax_busy--; 
    
            var jQueryObject = $('#myDiv'); 
            if (ajax_busy == 0) { 
    
             jQueryObject.show(); 
             jQueryObject.positionDiv($current_button); 
    
            } 
           }, 
           error: function() { 
            ajax_busy--; 
           } 
          }); 
         } 
        }; 
    
        $.each(newMethods, function(i) { 
         $.fn[i] = this; 
        }); 
    }; 
    
    })(jQuery);