Shopify集合排序方法不起作用

时间:2018-04-24 14:31:12

标签: javascript sorting shopify

Shopify建议使用此代码进行"排序依据"下载他们的收藏页面:https://gist.github.com/carolineschnapp/11352987

我正在使用Shopify Slate构建一个新主题,这段代码对我不起作用。幸运的是,另一位开发人员对此进行了评论并提供了更好的代码。这是代码:

document.querySelector('#sort-by').addEventListener('change', function() {
  const urlSearchParams = new URLSearchParams(window.location.search);
  urlSearchParams.set(this.name, this.value);
  window.location = `?${urlSearchParams}`;
});

不幸的是,由于没有添加" sort_by"到搜索参数。我将此代码的倒数第二行改为:

window.location = `?sort_by${urlSearchParams}`;

这很有效,但每当我尝试更改参数时,页面都会不断重新加载并向网址添加多个" sort_by"(例如?sort_bysort_by =降价和降价=标题-升序)

我有什么方法可以更改此代码,以便" sort_by"只在网址中出现一次?

1 个答案:

答案 0 :(得分:0)

如果您将window.location.search与:

交换,会发生什么
window.location.search.indexOf("sort_by") > -1 
? window.location.search.replace(/sort_by/gi,"")
: window.location.search

所以它变成了:

new URLSearchParams(
 window.location.search.indexOf("sort_by") > -1 
    ? window.location.search.replace(/sort_by/gi,"")
    : window.location.search
)