$ .active在遵循jQuery代码中意味着什么?

时间:2014-08-12 07:53:01

标签: jquery

我在我的项目中使用了以下jQuery库。以下是添加它们的代码:

<script src="jquery-1.9.1.min.js"></script>
    <script src="jquery-ui-1.10.0.custom.min.js"></script>

现在由前任开发人员编写的函数如下:

function add_rebate_by_product() {
  if($.active > 0) { //or $.active  //What this $.active does   
    request_inprogress();
  } else {
    var manufacturer_id = $("#company_id").val();
    var rebate_no       = $('.well').length;
    var site_url        = $('#site_url').val();

    if ($('.well').length>=0) { 
      rebate_no = rebate_no+1;
    }
      $('.add_new_rebate').attr('disabled','disabled');
    }

    $.ajax({
      type: "POST",
      url: "add_rebate_by_product.php",
      data: {'request_type':'ajax', 'op':'create_rebate', 'rebate_no':rebate_no, 'manufacturer_id':manufacturer_id},  
      beforeSend: function() { 
        $('.load_img').html("<img src='"+site_url+"img/ajax-loader.gif' class='load' alt='Loading...'>");
      },
      success: function(data) {
        if(jQuery.trim(data)=="session_time_out") {
          window.location.href = site_url+'admin/login.php?timeout=1';              
        } else {
          $('.rbt').append(data);
          $('.add_new_rebate').removeAttr('disabled');

          //code for state select control to make functionality workable in newly added rebate block
          $('.states').multiselect({
            includeSelectAllOption: true,
            maxHeight: 150
          });
          //code for datepicker control to make functionality workable in newly added rebate block
          $(".date_control").datepicker({
            dateFormat: "yy-mm-dd"
          });                   
        }
        $('.load').remove();
      }
    });
//}
}

现在有人可以解释以下文件的作用以及它的重要性吗?

if($.active > 0) { //or $.active        
        request_inprogress();
      }

提前致谢。

3 个答案:

答案 0 :(得分:5)

jQuery $.active是jQuery在内部使用但在官方文档中没有提到的函数。但是在我们编码时使用是没有问题的。

这是为ajaxStart()ajaxStop()启用全局事件处理程序的标志。您可以找到有关here和阅读this问题的详细信息。

以下是github上的一些代码段。

1

// Counter for holding the number of active queries
active: 0,

2

// Watch for a new set of requests
    if ( fireGlobals && jQuery.active++ === 0 ) {
        jQuery.event.trigger("ajaxStart");
    }

3

// Handle the global AJAX counter
            if ( !( --jQuery.active ) ) {
                jQuery.event.trigger("ajaxStop");
            }

答案 1 :(得分:3)

它测试是否存在活动连接,如果有任何(&gt; 0),它将执行函数request_inprogress(),否则它将执行语句的else部分。

在处理代码时可能会阻止代码处理。

答案 2 :(得分:2)

jQuery.active

此处描述了测试服务器的活动连接数,并在连接数为零时评估为真。