0

我有一个可以隐藏 2 个 div 的页面。现在,当我加载页面时,URL 如下所示

www.example.com/wedding.php#pyromusicals

或者它可能是

www.example.com/wedding.php#just-fireworks

现在我试图根据锚点值隐藏不同的 div,如果没有锚点,则将它们都隐藏起来。到目前为止,这是我的代码

$(document).ready(function () {

    // Get # parameter
    var param = document.URL.split('#')[1];


    if (param == 'pyromusicals') {
        $(".hidden-div2").hide();
    } else if (param == 'purely-fireworks') {
        $(".hidden-div1").hide();
    } else if (param == '') {
        $(".hidden-div1").hide();
        $(".hidden-div2").hide();
    }

});

问题是页面加载时两者都不起作用,但如果您手动点击刷新,则 jquery 开始工作。页面上的链接只是 html 链接

<li><span><a href="/wedding-fireworks.php#pyromusicals" title="View information about pyromusical displays for weddings">Pyromusicals</a></span></li>
<li><a href='/wedding-fireworks.php#purely-fireworks' title="View information about wedding fireworks"><span>Purely Fireworks</span></a></li>

事实上,我只是注意到在 IE 中它根本不起作用。只有在 Chrome 中,它在页面刷新后才有效

4

1 回答 1

0

好的,我已经从堆栈上的另一个帖子中解决了它。因此,当单击第二个锚点时,页面不会刷新它只是移动。要强制刷新,我在 url 中放了另一个 var

所以

www.example.com#pyro

变成了

www.example.com?string=1#pyro

这使页面刷新

答案取自

使用 html 锚点 (#) 强制页面重新加载 - HTML & JS

于 2013-07-01T15:03:01.277 回答