Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.location.hash不工作?_Javascript_Jquery_Html_Xhtml - Fatal编程技术网

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。我现在要试着更好地理解它:)。