gpt4 book ai didi

javascript - 设置 location.hash 时防止默认行为

转载 作者:行者123 更新时间:2023-11-29 10:49:26 24 4
gpt4 key购买 nike

当我这样做时,

location.hash = "test"

url 已更新并且页面位于具有该 id 的元素上。

有没有办法阻止页面回到那个元素?

最佳答案

解决方案

你无法阻止这种行为,但你可以通过暂时隐藏目标来愚弄它,例如。就像那样(它与 jQuery 无关):

// obtain "target" DOM (not jQuery) element and do this:
var original_id = target.id; // save original ID
target.id = null; // set target's ID
location.hash = 'test'; // issue location.hash change
target.id = original_id; // set ID to original value

通用解决方案

或者更一般的例子:

// make target_hash set to a hash you want to not lead you to page section and:
var element = document.getElementById(target_hash); // find element by ID
var original_id = element.id; // save original ID
location.hash = target_hash; // previously defined by you (eg. 'test')
element.id = original_id; // reset ID

演示/证明

现场示例如下,在通过 jQuery 附加的事件处理程序中(此处演示:http://jsfiddle.net/DaZfH/):

some_link.on('click', function(event){
event.preventDefault();
var target = document.getElementById('target');
var original_id = target.id;
target.id = null; // unset ID
location.hash = 'target';
target.id = original_id;
});

免责声明

但确实其他人是对的:将您移动到文档中的正确位置是正确的行为。如果您正在做我提到的事情,那么您的解决方案就相当古怪,而且肯定有更好的方法来做到这一点。

关于javascript - 设置 location.hash 时防止默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13328647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com