Javascript 标记上的HTML pushstate要更改参数,请加载两次
我想在不刷新的情况下更改参数。所以,我现在使用的是pushstate。像这样, HTMLJavascript 标记上的HTML pushstate要更改参数,请加载两次,javascript,html,Javascript,Html,我想在不刷新的情况下更改参数。所以,我现在使用的是pushstate。像这样, HTML <a class="filter" data-value="recent" href="#">Recent</a> <a class="filter" data-value="popular" href="#">Popular</a> 它的工作很好,但它加载页面2次。所以,我得到了重复的调用javascript。而且,这让我的网站很糟糕 我的逻辑中的错误点是
<a class="filter" data-value="recent" href="#">Recent</a>
<a class="filter" data-value="popular" href="#">Popular</a>
它的工作很好,但它加载页面2次。所以,我得到了重复的调用javascript。而且,这让我的网站很糟糕
我的逻辑中的错误点是什么?您是否尝试过
event.preventDefault()
?@Lee我在单击listener时添加了e.preventDefault()。它会更改参数,但不调用javascript。我想在更改参数后调用javascript一次。您还缺少一个)代码>从您的点击处理程序的末尾。它对我有效,可能是相关代码中的错误@李,这是我的错误,重新编写代码到这里。我编辑那个。
$('.filter').click(function(){
var data = $(this).data('value');
if ( data == 'recent' ) {
// make new_params_string here
history.pushState({}, "", window.location.pathname + '?' + new_params_string);
} else if ( data == 'popular' ) {
// make new_params_string here
history.pushState({}, "", window.location.pathname + '?' + new_params_string);
}
});