我有一个非常快速的问题应该是一个简单的答案。
我有一个移动导航菜单,使用jQuery“向下钻取”菜单级别。每次加载一个级别时,jQuery都会确定菜单的高度,并相应地设置它。
我在按钮上使用以下脚本来切换显示并隐藏基于当前页面的主菜单:
<script type="text/javascript">
(function ($) {
$("a.BNnavTrigger").click(function (event) {
event.preventDefault();
$("div.drill-down-wrapper").slideToggle("9000");
});
})(jQuery);
</script>
为了让菜单在某些页面上“关闭”,我知道我必须将display:none;
的css值赋予包含的div。这一切都很好,有一个小问题。
当我最初隐藏菜单时,jQuery明细菜单插件检测到它被隐藏,并将菜单高度设置为0px。当我在最初隐藏菜单的页面上切换菜单时,窗格中的所有其他内容都会正确切换,但菜单本身会卡在0高度。
在我的大脑中,这个问题的明显答案是在加载菜单并设置高度后,通过javascript隐藏包含的菜单div。这听起来不错吗?
有人能为我提供一个小脚本吗?我是一个完整的,完全和js的菜鸟。是否有其他人对如何处理此问题有不同的建议?
感谢您的时间! 亚历
更新<!/强>
JS在这里解决了这个问题: http://jsfiddle.net/fyyG2/17/ *
答案 0 :(得分:15)
尝试这种方式:
$("#yourId").css("display","none");
它应该有效!
我希望它有所帮助。
答案 1 :(得分:15)
在文档准备上执行$("#yourId").hide();
。
例如:
$(document).ready(function () {
$("div.drill-down-wrapper").hide();
var $drillDown = $("#drilldown");
// (what ever your code is)
});
答案 2 :(得分:2)
将css值display:none添加到您的css文件中工作得很好。 http://jsfiddle.net/dxkX6/4/
但我可以看到你的html文件中有拼写错误:
$("a.BNnavTrigger").click(function (event) {
^
<a class="BNavTrigger">Toggle Menu</a>
^
这可能是您遇到问题的原因吗?
答案 3 :(得分:1)
我不确定我是否完全理解你的问题,但这是一个想法:
将要隐藏的内容的不透明度设置为0,而不是更改其大小/隐藏它。这样它将保持其尺寸,但不会被用户看到:
$('#id').css('opacity',0);
并重新展示元素:
$('#id').css('opacity',1);
答案 4 :(得分:0)
尝试:
$('#id').style = "display: none;"