如果您访问我们的某个网站; http://skateboardingphoto.co.uk,您会看到顶部有一个导航栏,可以隐藏或展开。
在展开时(默认情况下展开,因此必须先进行最小化),需要点击两次,但这似乎只是第一次......
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery(".open-close").click( function() {
if (jQuery("#openClose").is(":hidden")) {
jQuery("#navigation-wrap").removeClass("closed").addClass("open")
.animate({
marginLeft: "0px"
}, 500 );
jQuery.cookie('navbar', 'open', { expires: 1, path: '/' });
jQuery("#openClose").show();
} else {
jQuery("#navigation-wrap").removeClass("open").addClass("closed")
.animate({
marginLeft: "-330px"
}, 500 );
jQuery.cookie('navbar', 'closed', { expires: 1, path: '/' });
jQuery("#openClose").hide();
}
});
});
</script>
感谢您的帮助
答案 0 :(得分:4)
这是因为您在cookie中保存工具栏的状态,并且根据cookie,用户可以看到隐藏或展开的工具栏。我认为处理cookie的代码是这一个(添加我指出的行):
jQuery(document).ready(function() {
var navbarstatus = jQuery.cookie('navbar');
if (navbarstatus == 'closed') {
jQuery("#navigation-wrap").css("margin-left", "-185px");
jQuery("#openClose").hide();//add this line
} else {
return false;
}
如果在初始化工具栏时没有隐藏该div,则第一次单击它时jQuery("#openClose").is(":hidden")
将返回false并执行代码的第二部分(隐藏("#openClose")
)等等第二次点击一切都是正确的。
答案 1 :(得分:1)
是浏览器特定的吗?最常见的原因是初始状态不正确 - 它适用于FF。
在特定浏览器中第一次检查是否正确拾取了(:hidden)。