【问题标题】:jQuery - parsing URL GET params to determine whether to show ajax spinnerjQuery - 解析 URL GET 参数以确定是否显示 ajax spinner
【发布时间】:2011-12-28 03:28:56
【问题描述】:

此代码当前不起作用,但这是我所拥有的:

App.Utils = {
  _spinnerDisabledAtQueryParam: function(request) {
    return /spinner\=false/.match(request.url);
  },
  showSpinner: function() {
    return $('#ajax-status').show();
  },
  hideSpinner: function() {
    return $('#ajax-status').hide();
  },
  bindSpinnerEvents: function(request) {
    $(document).on('ajaxStart', function() {
      if (!App.Utils._spinnerDisabledAtQueryParam(request)) {
        return App.Utils.showSpinner();
      }
    });
    return $(document).on('ajaxStop', function() {
      if ($.active === 0) {
        return App.Utils.hideSpinner();
      }
    });
  }
};

$(document).ready(function() {
  return App.Utils.bindSpinnerEvents(request);
});

如您所见,我将模拟请求对象传递给 bindSpinnerEvents。假设我有一个这样的网址:

http://localhost:8080/events?event_id=1&spinner=false

如果参数微调器设置为 true,我想要做的是不显示微调器。我尝试了几种不同的方法,但似乎无法使其正常工作。我刚开始学习 jQuery / Javascript。如果您能提供任何帮助,我们将不胜感激。

【问题讨论】:

    标签: javascript url jquery


    【解决方案1】:
    if (~window.location.search.search(/(?:^|[&;])spinnner=true(?:[&;]|$)/)) {
        // Hide spinner.
    }
    

    jsFiddle.

    如果 spinner 是一个 GET 参数并且其值为 true,则条件为真。

    ~ 运算符将匹配的存在变为真实,因此我们不需要与-1 进行比较。

    【讨论】:

    • 在执行至少两个 GET ajax 请求之前,此代码不会获取微调器参数。
    【解决方案2】:

    你可以试试这样的

    $(document).ready( function() {
    
                var name = 'spinner';
                var value;
    
                  var regexS = "[\\?&]"+name+"=([^&#]*)";  
                  var regex = new RegExp( regexS );  
                  var results = regex.exec('http://localhost:8080/events?event_id=1&spinner=false'); 
                   if( results == null ){
                        value=  "";  
                   }
                  else {value = results[1]}   ;
                  alert(value);
                  if(value) {
                      $('#ajax-status').show();
    
                  } else {
                      $('#ajax-status').hide();
    
                  }
        };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-07
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2012-06-14
      相关资源
      最近更新 更多