0

这是我的代码:

http://jsfiddle.net/h3ctt/

如果您在www.example.com/page.html#example-name1没有先加载页面的情况下导航到,它将显示整个页面而不是请求的内容。

但是,如果您在页面加载后导航到链接,它将起作用并显示所需的内容。

这很奇怪。有人可以解决这个问题吗?

4

2 回答 2

1

你应该检查哈希onloadonhashchange

// On page load
$(document).ready(function(){
    // When the hash (#something) changes
    window.onhashchange = function() {
        doAction();
    };

    doAction();

    function doAction() {
        // get the current hash minus '#'
        var profileId = window.location.hash.substr(1);

        if(profileId != '') {
            // hide all profiles
            $('.profile').hide();
            // show only the appropriate profile
            $('#' + profileId).show();
        }
    }
});
于 2013-02-25T20:34:27.800 回答
0

我相对确定您无法在 jsfiddle 上显示该功能,但是,如果您在正确的页面上,则 url 栏中的 page.html#example-name1 应该会产生您想要显示的功能。然而,为了使其在正确的页面上工作,您必须按照 aboodred1 对您的代码的建议进行操作。即,在 hashchange 上运行代码。这是为了确保在更改 url 时,它会显示该特定内容。

于 2013-02-25T20:34:09.037 回答