将div设置为display:none;使用javascript或jQuery

时间:2013-05-24 21:02:08

标签: javascript jquery css mobile

我有一个非常快速的问题应该是一个简单的答案。

我有一个移动导航菜单,使用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/ *

5 个答案:

答案 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;"