js сортировка по цене в зависимость от хэша страницы
Помогите с кодом Как изменять метод сортировки в зависимости от хэша страницы Есть вывод товаров, у каждого товара есть своя ценя, при нажатие на кнопку "Sort by Price" товары сортируются от меньшего к большему, по повторному нажатию наоборот, от большего к меньшему -- это работает
Мне нужно сделать таким образом, что если у меня меняется хэш страницы, на на пример: ?order=price - товары сортируются от меньшему к большему ?order=descending_price - товары сортируются от большего к меньшему
И можно ли это сделать без перезагрузки страницы, ведь хэш может измениться при выборе select'a например, при этом что бы сортировка срабатывала
Пример моего кода:
var ascending = false;
$('.tab-content').on('click', '.sortByPrice', function() {
var sorted = $('.product').sort(function(a, b) {
return (ascending ==
(convertToNumber($(a).find('.price').html()) <
convertToNumber($(b).find('.price').html()))) ? 1 : -1;
});
ascending = ascending ? false : true;
$('.results').html(sorted);
});
var convertToNumber = function(value) {
return parseFloat(value.replace('$', ''));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" >
<div class="container pb-4 tab-content">
<a class="sortByPrice" href="#">Sort by Price</a>
</div>
<div>
<div class="container">
<div class="row mb-4 results">
<div class="col-md-3 product">
<div class="card card-product p-3">
<div class="info-wrap">
<h6 class="title">Good product 1</h6>
</div>
<div class="d-flex flex-column">
<span class="price-new price">$1280</span>
<del class="price-old">$1980</del>
</div>
</div>
</div>
<div class="col-md-3 product">
<div class="card card-product p-3">
<div class="info-wrap">
<h6 class="title">Good product 2</h6>
</div>
<div class="d-flex flex-column">
<span class="price-new price">$1180</span>
<del class="price-old">$1880</del>
</div>
</div>
</div>
<div class="col-md-3 product">
<div class="card card-product p-3">
<div class="info-wrap">
<h6 class="title">Good product 3</h6>
</div>
<div class="d-flex flex-column">
<span class="price-new price">$1080</span>
<del class="price-old">$1780</del>
</div>
</div>
</div>
</div>
</div>
</div>
Так в редакторе. https://jsfiddle.net/synapse3/n2tx6svk/8/
Заранее спасибо