Javascript window.location.hash不工作?
我有一个链接(Javascript window.location.hash不工作?,javascript,jquery,html,xhtml,Javascript,Jquery,Html,Xhtml,我有一个链接(index.html#services)和一个,该代码仅在加载页面时运行,而不是在单击带有散列的链接时运行。尝试直接从新的浏览器选项卡中点击链接(index.html#services),它可能会工作。您需要做的是在哈希值更改时运行该代码。新浏览器有一个onhashchange事件,但在旧浏览器上没有。对于旧浏览器,您可以每隔一段时间轮询一次hash属性,查看它是否已更改 如果碰巧在触发该动画的链接上有一个特定的标识符(css类、id、名称等),您可以添加一个单击侦听器来运行该代码
index.html#services
)和一个,该代码仅在加载页面时运行,而不是在单击带有散列的链接时运行。尝试直接从新的浏览器选项卡中点击链接(index.html#services
),它可能会工作。您需要做的是在哈希值更改时运行该代码。新浏览器有一个onhashchange
事件,但在旧浏览器上没有。对于旧浏览器,您可以每隔一段时间轮询一次hash属性,查看它是否已更改
如果碰巧在触发该动画的链接上有一个特定的标识符(css类、id、名称等),您可以添加一个单击侦听器来运行该代码。例如:
function animateBackground() {
var service = $('#services');
var originalColor = service.css('background-color');
service.css('background-color', '#FFEE9F').animate({
'background-color': originalColor
}, 3000);
}
$(function () { // shortcut to $(document.ready)
$('.fade-bg').live('click', animateBackground);
animateBackground();
});
该代码仅在加载页面时运行,而不是在单击带有哈希的链接时运行。尝试直接从新的浏览器选项卡中点击链接(index.html#services
),它可能会工作。您需要做的是在哈希值更改时运行该代码。新浏览器有一个onhashchange
事件,但在旧浏览器上没有。对于旧浏览器,您可以每隔一段时间轮询一次hash属性,查看它是否已更改
如果碰巧在触发该动画的链接上有一个特定的标识符(css类、id、名称等),您可以添加一个单击侦听器来运行该代码。例如:
function animateBackground() {
var service = $('#services');
var originalColor = service.css('background-color');
service.css('background-color', '#FFEE9F').animate({
'background-color': originalColor
}, 3000);
}
$(function () { // shortcut to $(document.ready)
$('.fade-bg').live('click', animateBackground);
animateBackground();
});
或使用
取决于您的目标浏览器。或使用
window.onhashchange = function(){
if(window.location.hash === '#services') {
var service = $('#services');
var originalColor = service.css('background-color');
service.css('background-color', '#FFEE9F').animate({
'background-color': originalColor
}, 3000);
}
};
取决于您的目标浏览器。您也会错过分区id的结束引号。Opps,这不在我的实际代码中,这只是一个输入错误。您也会错过分区id的结束引号。Opps,这不在我的实际代码中,这只是一个输入错误。啊,您是对的,我以前尝试过从该链接刷新页面。。。但实际上需要打开一个新标签并复制/粘贴它。谢谢我怎样才能使它在点击链接时工作(这是我导航的一部分。)Opps,在看到编辑后的答案之前回答。你能告诉我怎么做吗?我是JS新手,还是这要求太高了?再一次。。。你赢了我的反应哈。因此,如果我要,比如说,做
,上面的代码就行了?@Matt:如果你只是想复制并粘贴JS代码,你的链接会是这样的:
。或者,如果您希望它与刚才粘贴在该注释中的锚一起工作,您可以将$('.fade bg')
更改为$('#listen')
。另外,不用说代码将进入ready函数中。它可以工作,tyvm。我现在要试着更好地理解它:)。啊,你是对的,我以前尝试过从那个链接刷新页面。。。但实际上需要打开一个新标签并复制/粘贴它。谢谢我怎样才能使它在点击链接时工作(这是我导航的一部分。)Opps,在看到编辑后的答案之前回答。你能告诉我怎么做吗?我是JS新手,还是这要求太高了?再一次。。。你赢了我的反应哈。因此,如果我要,比如说,做
,上面的代码就行了?@Matt:如果你只是想复制并粘贴JS代码,你的链接会是这样的:
。或者,如果您希望它与刚才粘贴在该注释中的锚一起工作,您可以将$('.fade bg')
更改为$('#listen')
。另外,不用说代码将进入ready函数中。它可以工作,tyvm。我现在要试着更好地理解它:)。