我很惭愧地说我有锚问题。
所以我有这段代码:
<a name="map"></a>
$("div.store_list").click(function() {
//do some stuff
location.href = location.href + '#map'
});
第一次点击时,它可以正常工作。并且URL更改为:
http://mydomain.local/stores#map
再次点击URL更改为以下内容,它不起作用:
http://mydomain.local/stores#map#map
有什么建议吗?感谢
答案 0 :(得分:4)
请尝试location.hash,例如
location.hash='#map'
答案 1 :(得分:2)
问题已使用:document.location = "#map";
答案 2 :(得分:2)
如果您滚动并需要再次跳转,这对我有用:
onclick="location.hash=''; location.hash='#map';"
答案 3 :(得分:0)
您可以检查以确保该网址尚未包含您要追加的值:
$("div.store_list").click(function() {
//do some stuff
if (location.href.indexOf('#map') == -1) {
location.href += '#map';
}
});
答案 4 :(得分:0)
接受的解决方案对我来说并不合适。通过将锚值设置为&#34;#&#34;我设法让它在Chrome中工作。首先,然后将其设置到我想要的位置。
document.location.href = "#";
document.location.href = "#myAnchor";
一旦我这样做,每当我点击其中带有锚标记的链接时就会触发。
$(document).on('click', '.jump_to_instance', e => {
// Get anchor name
var anchorName = $(e.target).attr("href");
// Set anchor to nothing first
document.location.href = "#";
// Set to new anchor value
document.location.href = anchorName;
});
<a href="#myAnchor">Click me to go to anchor, I should work multiple times</a>
<div id="myAnchor">Will jump to here</div>
答案 5 :(得分:0)
重置锚链接单击事件上的滚动位置对我来说很有效。 看起来像theres at least one bug中带有定位链接的Chrome版本76-86(发布时为最新的macOS版本)。
尝试:
window.scrollTo(0, 0)