gpt4 book ai didi

jquery - 从当前 url 添加/删除 anchor 名称而不刷新

转载 作者:行者123 更新时间:2023-12-03 21:29:09 25 4
gpt4 key购买 nike

我希望在点击事件上 append/删除要添加到当前网址的 anchor 名称“#on”,而无需重新加载页面,或者使用链接中的 href='#on',因为它会使我的页面跳转

例如:http://www.example.com/page.html#on这样我就可以检测来自该网址的用户并调用On()函数

function On()
{
//append to current url the anchor "#on"
}

function Off()
{
//remove from the current url the anchor "#on"
}

$('.on').live('click', function() {
On();
return false;
});


$('.off').live('click', function() {
Off();
return false;
});

最佳答案

您实际上并不需要 jQuery,您可以使用 location.hash 获取/设置 anchor 名称。如果你把它放在你的 jQuery 就绪函数中,如果它设置为某个值,你就可以执行一些操作:

$(function(){
// Remove the # from the hash, as different browsers may or may not include it
var hash = location.hash.replace('#','');

if(hash != ''){
// Show the hash if it's set
alert(hash);

// Clear the hash in the URL
location.hash = '';
}
});

请注意,删除哈希值时,尾随的 # 可能会保留在地址栏中。如果您想响应 anchor 的实时更改,可以将回调绑定(bind)到 hashchange 事件:

$(document).bind("hashchange", function(){
// Anchor has changed.
});

如果你想防止页面在清除 anchor 时跳到顶部,可以绑定(bind) hashchange 事件来跳回到上一个滚动位置。看看这个例子:http://jsfiddle.net/yVf7V/

var lastPos = 0;

$('#on').click(function(){
location.hash = 'blah';
});

$('#off').click(function(){
lastPos = $(window).scrollTop();
location.hash = '';
});

$(window).bind('hashchange',function(event){
var hash = location.hash.replace('#','');
if(hash == '') $(window).scrollTop(lastPos);
alert(hash);
});

关于jquery - 从当前 url 添加/删除 anchor 名称而不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928435/

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