2012-01-19 47 views
0

我有一个包含几个div,其显示设置为无,然后通过jQuery切换网页,只要在相关的利用户点击:设置一个div的显示为无隐藏所有孩子的div

<ul id="switches"> 
    <li id="home" style="cursor: hand; cursor: pointer">HOME</li> 
    <li id="vouchers" style="cursor: hand; cursor: pointer">GIFT VOUCHERS</li> 
    <li id="reservations" style="cursor: hand; cursor: pointer">RESERVATIONS</li>  
    <li id="contact"> 
     <img src="images/loc.png" style="cursor : hand; cursor: pointer" /> 
    </li> 
    <li id="menu"> 
     <img src="images/menu.png" style="cursor: hand; cursor: pointer" /> 
    </li> 
</ul> 

开关的代码,我从这个答案有:https://stackoverflow.com/a/34710/914602

只要有人点击了“家”里,我展示了“content_home” DIV等

<div id="content" style="float: right; width: 500px; margin-top: 15px"> 
    <div id="content_home" class="active"> 
     home 
    </div> 
    <div id="content_vouchers"> 
     voucher 
    </div> 
    <div id="content_reservations"> 
     reserv 
    </div> 
    <div id="content_contact"> 
     <div id="map_canvas" style="width:480px; margin-left:20px; height:300px"> 
     </div> 
    </div> 
    <div id="content_menu"> 
     menu 
    </div> 
</div> 

在我的“合作ntent_contact“div,我有另一个div,我设置为包含Google Map(请参见:http://code.google.com/p/jquery-ui-map/)。但是,如果“content_contact”div的显示设置为none(通过单击其他链接之一),则它所包含的所有div也被隐藏。当我设置显示屏再次阻止时,只有父母被设置,而不是孩子。 (所以...如果我点击“home”,会显示“content_home”,当我点击“contact”时,显示“content_contact”,但它包含的div(包括地图)的显示仍然被设置为没有)。

如果我枚举所有“content_contact”的孩子,设置它们的显示再次阻止,当然,显示在地图格,但里面地图中所有的div 也显示(的东西,如地图数据覆盖,用于选择卫星/越野风格的地图,街景菜单等)菜单:

error http://www.1sttime.co.za/error.jpg

有没有办法只能设置父DIV是无形的,同时保持孩子,因为他们是谁?

+0

你可以发布你的JavaScript代码隐藏div的地方吗? – ShankarSangoli

+0

你怎么隐藏div? –

+0

我的div设置为显示:默认没有,并且每当我激活(显示)一个,我会添加一个类包含显示:块; – grimstoner

回答

1

我敢打赌,这与你如何隐藏你的其他内容有关。

我这里有一个简单的例子,似乎工作:

http://jsfiddle.net/jtbowden/3WSnD/

$('#content > div').hide();删除“>”,你会看到其中的差别。

+0

这样做。谢谢。 – grimstoner

1

没有。所有元素都有它们自己的显示值,但是如果父项有显示,则按设计显示:没有,那么它的子元素也不会显示。如果希望在隐藏父项时显示#map_canvas,则必须从#content_contact中删除#map_canvas。

地图问题对Google地图来说可能是独一无二的,它对显示效果不佳:无。而不是将其设置为显示:无需您尝试将其完全放置并将其移至屏幕外(例如:left:99999px),然后在想要再次显示时将其移回。

+0

当隐藏父项时,我不想显示#map_canvas。当父项被隐藏并再次显示时,#map_canvas不会显示。 – grimstoner