jQuery - парсинг URL GET параметров, чтобы определить, следует ли показывать счетчик ajax - PullRequest
0 голосов
/ 28 декабря 2011

Этот код в настоящее время не работает, но вот что у меня есть:

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.Давайте предположим, что у меня есть URL-адрес, подобный следующему:

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

Что я хочу сделать, это НЕ показывать счетчик, если параметризованный счетчик установлен в значение true.Я пробовал несколько разных вещей, но не могу заставить это работать.Я только начал изучать jQuery / Javascript.Буду признателен за любую помощь, которую вы можете оказать.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

вы можете попробовать что-то вроде этого

$(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();

              }
    };
0 голосов
/ 28 декабря 2011
if (~window.location.search.search(/(?:^|[&;])spinnner=true(?:[&;]|$)/)) {
    // Hide spinner.
}

jsFiddle .

Условие будет истинным, если spinner является параметром GET и его значением является true.

~ оператор превращает наличие совпадения в правдиво , поэтому нам не нужно сравнивать с -1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...