location.hash立即消失

我正在构建一个实时搜索+过滤方法,并且我注意到当我使用该方法(这是一个示例)时,它在URL中显示后进行哈希 – 它会立即被删除。 如果我将该哈希集移动到例如按钮的单击方法,它可以正常工作。 为什么?

$('.menu-link').click(function () { window.location.hash = 'search-container'; }); 

它正在消失,因为您的链接正在被跟踪,导致该位置被更改为a的href 。 如果你添加一个return false; 在您的点击处理程序结束时,该位置不会更改。

试试这个:

 $('.menu-link').click(function (event) { event.preventDefault(); window.location.hash = 'search-container'; });