Jquery无法在刷新时显示隐藏的div

时间:2011-09-09 22:09:38

标签: jquery

我遇到了一个奇怪的问题。

我有一个通过css display:none隐藏的div,并且每个页面的body标签都有一个id。 现在当我通过点击输入地址栏或通过指向该页面的链接来加载页面时,一切都正常加载,并且需要显示的div显示出来。

但是如果我点击F5按钮刷新页面则不行。

超级简单的jquery,但不适用于F5?错误?还是我遗失的东西?

HTML

<body id="projects">
<ul id="sub_navigation" class="projects">
<li>stuff</li>
<li>stuff</li>
</ul> 

CSS

#sub_navigation.projects{display:none;}

Jquery的

$(document).ready(function(){
var page = $('body').attr('id');        
$('#sub_navigation.'+page).show();  
});

2 个答案:

答案 0 :(得分:0)

您正在通过ID找到元素,因此您不需要页面ID。试试这个:

$(document).ready(function(){      
    $("#sub_navigation").show();   
});

我不知道有多少元素使用projects类名,但是可以按类名获取元素吗?:

$(document).ready(function(){      
    $(".projects").show();   
});

或者这可能是怎么回事?:

$(document).ready(function(){      
    $("ul#sub_navigation.projects").show();   
});

答案 1 :(得分:0)

我会试试这个:

html - 在导航ID上使用后缀来唯一标识它。

<body id="projects">
<ul id="sub_navigation_projects" class="hidden">
<li>stuff</li>
<li>stuff</li>
</ul>

CSS

.hidden{display:none;}

javascript - 根据正文ID创建唯一的导航ID。

$(document).ready(function() {
    var page = $('body').attr('id');
    $('#sub_navigation_'+page).removeClasss('hidden');
});