0

我有这个 jQuery,它根据单击的列表项显示/隐藏内容。我还希望能够在登陆此页面时显示特定内容,具体取决于用户在另一个页面上单击的链接。

我知道要做到这一点,我必须以某种方式从另一个链接中携带变量,并使其充当变量。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>    
<script type="text/javascript"> 
$(document).ready(function() {
$('#side_nav ul li a').click(function() {
    $('#side_nav ul li.current').removeClass('current');
    $(this).parent().addClass('current');

    var filterVal = $(this).attr('class');

        $('#content div.section').each(function() {
            if($(this).hasClass(filterVal)) {
                $(this).fadeIn(200);
            } else {
                $(this).hide();
            }
        });
    return false;
});
});
</script>

我尝试将#desired_content 添加到单独页面上链接的url末尾,我知道使用window.location.hash,我可以以某种方式将该哈希标签作为变量拉入,但我完全迷失了如何做到这一点。

请帮忙。

编辑:我将此添加到外部页面:

<li><a href="./about.html#how_it_works">HOW IT WORKS</a></li>

这到目标页面,只是为了测试是否正在添加类

<script type="text/javascript"> 
$(document).ready(function() {
    var myHash = window.location.hash;

    if( myHash == "#how_it_works" ){
        $('#content div.how_it_works').addClass('test');
    }else if( myHash == "#option2" ){
        // fade in option2
    }


});     
</script>

我不明白为什么这不起作用...

4

2 回答 2

1

散列 URL 主要用于页内锚标记(返回顶部等),因此我建议使用散列 URL 将某人引导到页面的某个部分很有意义。

一旦进入页面,我所做的是通过 window.location.hash 获取哈希 URL 并根据此字符串操作您的页面。

var myHash = window.location.hash;

if( myHash == "#desired_content" ){
// fade in option1
}else if( myHash == "#option2" ){
// fade in option2
}
于 2013-01-15T15:15:58.953 回答
-1

我建议将变量存储在第一页的 localStorage 中,然后在第二页从 localStorage 加载变量。这将比传递不是正确目的的哈希 URL 更简单。

第一页

<a href="secondPage.html" id="link">Go to second page</a>
<script type="text/javascript"> 
$(document).ready(function() {
$('#link').click(function(){
    // set your variable when someone click the link
    localStorage.setItem("myVariable", "someValue");
});
});
</script>

第二页

<script type="text/javascript"> 
$(document).ready(function() {
var yourVariable = localStorage.getItem("myVariable");
// do your stuff according to this variable that passed from firstpage
//...
});
</script>
于 2013-01-15T15:06:15.540 回答