2011-12-28 28 views
0

該代碼當前不工作,但這裏是我有:jQuery的 - 解析URL GET PARAMS,以確定是否顯示AJAX微調

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。任何幫助,你可以提供將不勝感激。

回答

0
if (~window.location.search.search(/(?:^|[&;])spinnner=true(?:[&;]|$)/)) { 
    // Hide spinner. 
} 

jsFiddle

如果spinner是GET參數且其值爲true,則條件爲真。

~操作者接通匹配的存在是truthy,所以我們並不需要比較反對-1

+0

此代碼不會拿起微調PARAM直到至少兩個GET Ajax請求被執行。 – keruilin 2011-12-28 04:08:00

0

ü可以嘗試這樣的事情

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

       } 
    };