javascript - window.location.hash 不起作用?

标签 javascript jquery html xhtml

我有一个链接 ( index.html#services ) 和 <div id="services>我试图更改单击链接时的背景颜色,然后淡入淡出。我正在使用最新的 jQuery 和 jQuery Color插件,以及:

$(document).ready(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);
    }
});

进行突出显示,但它不起作用。有谁知道为什么吗?

最佳答案

该代码仅在加载页面时运行,而不是在单击带有哈希值的链接时运行。尝试直接从新的浏览器选项卡中点击链接 (index.html#services),它可能会起作用。您需要做的是在哈希更改时运行该代码。新浏览器有一个 onhashchange 事件 - 但旧浏览器上没有这样的事情。对于旧浏览器,您可以经常轮询哈希属性以查看它是否已更改。

如果碰巧您在触发该动画的链接上有一个特定的标识符(css 类、id、名称等),您可以添加一个 click 监听器来运行该代码。例如:

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();
});

关于javascript - window.location.hash 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848706/

相关文章:

javascript - ReactJS onBlur 不工作

javascript - jQuery datepicker altFormat 不显示

javascript - jQuery 上传文件插件 - 上传后如何重新加载页面?

html - 如何在不影响其他部分的情况下将我的 Wordpress 主页上的一个小部件作为目标?

javascript - wordpress 的本地主机 : correct way to link reference css/js files?

javascript - 如何在被透明 div 覆盖时突出显示 HTML 文本?

javascript - 在 Immutable.js 中获取嵌套值

html - ie7 float div 左填充问题

javascript - 如何使用 SPServices 和 SharePoint 2010 搜索和替换列表项名称?

javascript - Json 响应未定义