Skip to content

Instantly share code, notes, and snippets.

@ejdanderson
Created June 6, 2017 22:22
Show Gist options
  • Save ejdanderson/08c91b158107b19623100779adf39100 to your computer and use it in GitHub Desktop.
Save ejdanderson/08c91b158107b19623100779adf39100 to your computer and use it in GitHub Desktop.
Add/remove query parameters to the URL bar
updateParams : function() {
$('.class').on('change', function(e) {
e.preventDefault();
let url = window.location.pathname;
if ( $(this).prop('checked') ) {
let query_string = this.buildParamStr('param-name', 'param-value', true);
window.history.pushState('old-ai-state', '', url + query_string);
} else {
let query_string = this.buildParamStr('ai_fwp_filter', null, false);
window.history.pushState('old-ai-state', '', url + query_string);
}
});
},
buildParamStr : function (key, value, append) {
let param_hash = [];
let hash_str = '';
let param_str = window.location.search.replace('?', '').split('&');
$.each(param_str, function(idx, val) {
let param_name = val.split('=')[0];
if ( key !== param_name) {
param_hash.push(val);
}
});
if ( append ) {
param_hash.push(key + '=' + value)
}
hash_str = param_hash.join('&');
if ( '' !== hash_str ) {
hash_str = '?' + hash_str;
}
return hash_str;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment