在重定向上打开隐藏元素

时间:2011-09-15 11:32:17

标签: jquery html

我有两个.html文件(page1.html和page2.html)

Page1.html获得了page2.html上的文本链接

<a href="page2.html#text1">page2 - text1</a>
<a href="page2.html#text2">page2 - text2</a>

Page2.html包含以下代码:

<a href="#" class="text_link" onClick="$('.desc').slideUp(); $('#text1').slideDown('slow'); return false;">link_to_text1</a>
    <div class="desc" id="text1" style="display:none;">
       <p>text1</p>
    </div>

<a href="#" class="text_link" onClick="$('.desc').slideUp(); $('#text2').slideDown('slow'); return false;">link_to_text2</a>
    <div class="desc" id="text2" style="display:none;">
       <p>text2</p>
    </div>

我想要的是:链接“page2 - text1”应该打开page2.html并显示text1,对于第二个链接也是如此。如何使它工作?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以传递诸如以下的参数:

<a href="page2.html#text1?show=text1">page2 - text1</a>
<a href="page2.html#text2?show=text2">page2 - text2</a>

然后使用一些javascript来获取第2页上的参数,然后执行一些隐藏或显示

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
if(getUrlVars()["show"]=="text1")
$('#text1').show();
else
$('#text2').show();

http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html

答案 1 :(得分:1)

$(document).ready(...处理查询字符串“anchors”并根据锚

打开块

在第二页:

$(document).ready(function() {
   var param = window.location.href.substring(window.location.href.indexOf('#')));
   if (param != '' && param != undefined) {
     $(param).slideDown();
   }
});

在这种情况下,'#'之后的部分应匹配要切换的elemtn id。