Jquery 淡入/淡出DIV和嵌套DIV';s

Jquery 淡入/淡出DIV和嵌套DIV';s,jquery,html,css,Jquery,Html,Css,我正在尝试一个场景,在那里我可以淡入淡出一个div,用另一个div替换它。这部分我已经开始工作了,但是如果我淡入的div中有div,我的div就会完全消失 例如: <center> <ul id="menu"> <li><a href="#content1">Home</a>&nbsp;&nbsp;|</li> <li><a h

我正在尝试一个场景,在那里我可以淡入淡出一个div,用另一个div替换它。这部分我已经开始工作了,但是如果我淡入的div中有div,我的div就会完全消失

例如:

<center>
        <ul id="menu">
            <li><a href="#content1">Home</a>&nbsp;&nbsp;|</li>
            <li><a href="#content2">Work</a>&nbsp;&nbsp;|</li>
            <li><a href="#content3">Blog</a>&nbsp;&nbsp;|</li>
            <li><a href="#content4">Contact</a></li>
        </ul>
    </center>
        <hr class="style-main">
        <center><img src="{image:homeHeaderImage}"></center>
</div>

 <div id="contentWrap">
   <div id="content1">
         Home, content should go here :)

     </div>
}))

这是一个JSFIDLE,主菜单项就是出现问题的那个。正如你所知道的,其他的很好用


在jQuery中,您有以下行:

$('#contentWrap div').hide();
这会导致隐藏所有div,包括#content1中的div

因此,当您单击“主页”按钮时,#content1确实会使其褪色,但是#content1中包含要显示的信息的div仍然隐藏

通过将以下内容添加到css中,您可以轻松解决此问题:

#homeContent{ display:block !important; }

尽管稍微重写jQuery可能会更好,这样就不必一开始就隐藏所有的div。(通过css显示:无)

在jQuery中,您有以下行:

$('#contentWrap div').hide();
这会导致隐藏所有div,包括#content1中的div

因此,当您单击“主页”按钮时,#content1确实会使其褪色,但是#content1中包含要显示的信息的div仍然隐藏

通过将以下内容添加到css中,您可以轻松解决此问题:

#homeContent{ display:block !important; }

尽管稍微重写jQuery可能会更好,这样就不必一开始就隐藏所有的div。(通过css显示:无)

只需更新这一行:

$('#contentWrap div:first').show();
$('#contentWrap div:first-child').show();
使用此选项:

$('#contentWrap div:first').show();
$('#contentWrap div:first-child').show();

看看这是否有用。

只需更新这一行:

$('#contentWrap div:first').show();
$('#contentWrap div:first-child').show();
使用此选项:

$('#contentWrap div:first').show();
$('#contentWrap div:first-child').show();

看看这是否有帮助。

您的CSS选择器设置为选择
#contentWrap
下的所有
div
元素

如果将它们更改为
#contentWrap>div
,则只会选择直接子项

像这样:


为了避免它们在加载时同时显示,您应该将
display:none
添加到
#contentWrap>div的CSS中

您的CSS选择器设置为选择
#contentWrap
下的所有
div
元素

如果将它们更改为
#contentWrap>div
,则只会选择直接子项

像这样:



为了避免它们在加载时同时显示,您应该将
display:none
添加到
#contentWrap>div

的CSS中。您可能应该设置一个来显示问题,也许这会有帮助。我更正了你的JSFIDLE设置不好。你可能应该设置一个来显示问题。添加了JSFIDLE,也许会有帮助。我更正了你的JSFIDLE设置不好。我尝试将它添加到CSS中,但似乎没有显示嵌套DIV的内容。嗯,这很奇怪。更新了JSFIDLE中的css,它在那里工作,但在我的机器上它不会显示它。谢谢你的回答。这会有用的,没问题。如果我的答案有助于你解决问题,你能支持我吗?:)说我需要15名代表投票支持你的答案。如果我在该div中创建更多div,我必须添加display:block!进口css标签?我要做的是给所有要隐藏的DIV指定一个类,并使用该类来定位jQuery或css中的所有DIV。尝试将其添加到css中,但似乎没有显示嵌套DIV的内容。嗯,这很奇怪。更新了JSFIDLE中的css,它在那里工作,但在我的机器上它不会显示它。谢谢你的回答。这会有用的,没问题。如果我的答案有助于你解决问题,你能支持我吗?:)说我需要15名代表投票支持你的答案。如果我在该div中创建更多div,我必须添加display:block!进口css标签?我要做的是给所有要隐藏的div指定一个类,并使用该类来定位jQuery或css中的所有div。这使它一次显示所有四个div,当我单击其他div并返回主div时,它保持白色。这使它一次显示所有四个div,当我点击其他的并返回到home div时,它仍然是白色的。现在,只要替换我使用的代码片段,它就可以完美地工作。非常感谢你们,我一直在努力解决这个问题。你们知道为什么它在本地机器上不起作用吗。直接从JSFIDLE复制代码,在我的Mac上无法运行。这就是答案。NVM,明白了,再次感谢老兄。当我复制它的时候,我在css中遗漏了一个>,我花了一点时间才意识到。现在,只要替换我使用的代码片段,它就可以完美地工作。非常感谢你们,我一直在努力解决这个问题。你们知道为什么它在本地机器上不起作用吗。直接从JSFIDLE复制代码,在我的Mac上无法运行。这就是答案。NVM,明白了,再次感谢老兄。当我把它复制过来时,我在css中漏掉了一个>,我花了一点时间才意识到这一点。