如何隐藏除一个以外的所有div并否定之前的js?
How to hide all divs except for one and negating the previous js?
所以我遇到的一般问题是我有一组菜单按钮,它们都对 hide/show div 脚本做出反应,但我想排除 "gallery"按钮。我希望画廊按钮隐藏 "container div" 中的所有 div,因为画廊将位于所有其他 div 之后。我似乎无法想出一个脚本来否定原始显示和隐藏,只隐藏除页眉、菜单、画廊和页脚之外的所有 div。任何帮助将不胜感激。
我把它放在 JSFiddle 上,但脚本似乎并没有像在我的浏览器上那样工作。无论如何,它在这里:
{ http://jsfiddle.net/ej66fknt/
Html:
`<div id= "wrapper">
<!-- Beginning of soMedia -->
<div id= "soMedia">
</div>
<!-- Ending of soMedia -->
<!-- Beginning of header -->
<div id= "header">
</div>
<!-- Ending of header -->
<!-- Beginning of menuBar -->
<div id= "menuBar">
<a href= "#" data-mainContent="home">Home</a>
<a href= "#" data-mainContent="gallery">Gallery</a>
<a href= "#" data-mainContent="suppliers">Suppliers</a>
<a href= "#" data-mainContent="testimonials">Testimonials</a>
<a href= "#" data-mainContent="process">Process</a>
<a href= "#" data-mainContent="contact">Contact</a>
</div>
<!-- Ending of menuBar-->
<!-- Beginning of galleryBG -->
<div id= "galleryBG"-->
<br />
Gallery here.
</div>
<!-- End of galleryBG -->
<!-- Beginning of container-->
<div id= "container">
<!-- Beginning of mainContent -->
<div id= "mainContent">
<div id= "home">
This is content for home.
</div>
<div id= "Suppliers">
This is content for Suppliers.
</div>
<div id= "process">
This is content for Process.
</div>
<div id= "contact">
This is content for Contact.
</div>
</div>
<!-- Ending of mainContent -->
<!-- Beginning of blog -->
<div id= "blog">
blog goes here.
</div>
<!-- Ending of blog -->
</div>
<!-- End of container-->
<!-- Beginning of copyright -->
<div id= "copyright">
</div>
<!-- Ending of copyright -->
</div>
`
CSS:
@charset "utf-8";
#wrapper {
min-width: 800px;
max-width:960px;
height: auto;
position:relative;
margin-left: auto;
margin-right:auto;
}
#soMedia {
width: auto;
height: 25px;
margin-left: auto;
margin-right: auto;
}
#header {
width: auto;
height: 100px;
margin-left: auto;
margin-right: auto;
}
#menuBar {
width: auto;
height: 50px;
text-align: center;
padding-top: 10px;
}
#menuBar > a{
font-family:Arial, Helvetica, sans-serif;
font-size:20px;
padding: 20px;
border:#CCC 1px solid;
background:#FFF;
color: #999;
margin-right: 10px;
text-decoration: none;
-webkit-transition: background 0.3s linear 0s, color 0.3s linear 0s;
-moz-transition: background 0.3s linear 0s, color 0.3s linear 0s;
-ms-transition: background 0.3s linear 0s, color 0.3s linear 0s;
-o-transition: background 0.3s linear 0s, color 0.3s linear 0s;
transition: background 0.3s linear 0s, color 0.3s linear 0s;
}
#menuBar > a:hover{
background:#333;
color:#FFF;
}
#galleryBG {
width: auto;
height: 600px;
z-index: 10px;
margin-left: auto;
margin-right: auto;
}
#container {
width: auto;
height: 600px;
z-index: 5000px;
position: relative;
top:-600px;
margin-left: auto;
margin-right: auto;
}
#container #mainContent {
width: 800px;
height: 600px;
float: left;
position: relative;
}
#container #mainContent #home {
width:100%;
height: 100%;
}
#container #mainContent #Suppliers {
width:100%;
height: 100%;
}
#container #mainContent #process {
width:100%;
height: 100%;
}
#container #mainContent #contact {
width:100%;
height: 100%;
}
#container #blog {
width: 160px;
height:600px;
float: right;
position: relative;
}
#copyright {
width: auto;
height: 60px;
margin-left: auto;
margin-right: auto;
}
Javascript:
$(function(){
$('#mainContent').children().hide()
$('#home').fadeIn("Slow");
$('#menuBar').on('click', 'a', function(){
$('#mainContent').children().hide();
var el = $(this).attr('data-mainContent');
$('#mainContent div#' + el).fadeIn("Slow");
});
});
}
你是这个意思吗?您可以使用 if
语句查看单击的按钮是否为 "gallery",然后隐藏 #mainContent
:
中的所有子项
$(function(){
$('#mainContent').children().hide()
$('#home').fadeIn("Slow");
$('#menuBar').on('click', 'a', function(){
$('#mainContent').children().hide();
var el = $(this).attr('data-mainContent');
if(el == "gallery"){
$('#mainContent').children().hide()
}else{
$('#mainContent div#' + el).fadeIn("Slow");
}
});
});
仅供参考,您的 fiddle 无法正常工作,因为您没有在边栏中加载 jQuery
所以我遇到的一般问题是我有一组菜单按钮,它们都对 hide/show div 脚本做出反应,但我想排除 "gallery"按钮。我希望画廊按钮隐藏 "container div" 中的所有 div,因为画廊将位于所有其他 div 之后。我似乎无法想出一个脚本来否定原始显示和隐藏,只隐藏除页眉、菜单、画廊和页脚之外的所有 div。任何帮助将不胜感激。
我把它放在 JSFiddle 上,但脚本似乎并没有像在我的浏览器上那样工作。无论如何,它在这里:
{ http://jsfiddle.net/ej66fknt/
Html:
`<div id= "wrapper">
<!-- Beginning of soMedia -->
<div id= "soMedia">
</div>
<!-- Ending of soMedia -->
<!-- Beginning of header -->
<div id= "header">
</div>
<!-- Ending of header -->
<!-- Beginning of menuBar -->
<div id= "menuBar">
<a href= "#" data-mainContent="home">Home</a>
<a href= "#" data-mainContent="gallery">Gallery</a>
<a href= "#" data-mainContent="suppliers">Suppliers</a>
<a href= "#" data-mainContent="testimonials">Testimonials</a>
<a href= "#" data-mainContent="process">Process</a>
<a href= "#" data-mainContent="contact">Contact</a>
</div>
<!-- Ending of menuBar-->
<!-- Beginning of galleryBG -->
<div id= "galleryBG"-->
<br />
Gallery here.
</div>
<!-- End of galleryBG -->
<!-- Beginning of container-->
<div id= "container">
<!-- Beginning of mainContent -->
<div id= "mainContent">
<div id= "home">
This is content for home.
</div>
<div id= "Suppliers">
This is content for Suppliers.
</div>
<div id= "process">
This is content for Process.
</div>
<div id= "contact">
This is content for Contact.
</div>
</div>
<!-- Ending of mainContent -->
<!-- Beginning of blog -->
<div id= "blog">
blog goes here.
</div>
<!-- Ending of blog -->
</div>
<!-- End of container-->
<!-- Beginning of copyright -->
<div id= "copyright">
</div>
<!-- Ending of copyright -->
</div>
`
CSS:
@charset "utf-8";
#wrapper {
min-width: 800px;
max-width:960px;
height: auto;
position:relative;
margin-left: auto;
margin-right:auto;
}
#soMedia {
width: auto;
height: 25px;
margin-left: auto;
margin-right: auto;
}
#header {
width: auto;
height: 100px;
margin-left: auto;
margin-right: auto;
}
#menuBar {
width: auto;
height: 50px;
text-align: center;
padding-top: 10px;
}
#menuBar > a{
font-family:Arial, Helvetica, sans-serif;
font-size:20px;
padding: 20px;
border:#CCC 1px solid;
background:#FFF;
color: #999;
margin-right: 10px;
text-decoration: none;
-webkit-transition: background 0.3s linear 0s, color 0.3s linear 0s;
-moz-transition: background 0.3s linear 0s, color 0.3s linear 0s;
-ms-transition: background 0.3s linear 0s, color 0.3s linear 0s;
-o-transition: background 0.3s linear 0s, color 0.3s linear 0s;
transition: background 0.3s linear 0s, color 0.3s linear 0s;
}
#menuBar > a:hover{
background:#333;
color:#FFF;
}
#galleryBG {
width: auto;
height: 600px;
z-index: 10px;
margin-left: auto;
margin-right: auto;
}
#container {
width: auto;
height: 600px;
z-index: 5000px;
position: relative;
top:-600px;
margin-left: auto;
margin-right: auto;
}
#container #mainContent {
width: 800px;
height: 600px;
float: left;
position: relative;
}
#container #mainContent #home {
width:100%;
height: 100%;
}
#container #mainContent #Suppliers {
width:100%;
height: 100%;
}
#container #mainContent #process {
width:100%;
height: 100%;
}
#container #mainContent #contact {
width:100%;
height: 100%;
}
#container #blog {
width: 160px;
height:600px;
float: right;
position: relative;
}
#copyright {
width: auto;
height: 60px;
margin-left: auto;
margin-right: auto;
}
Javascript:
$(function(){
$('#mainContent').children().hide()
$('#home').fadeIn("Slow");
$('#menuBar').on('click', 'a', function(){
$('#mainContent').children().hide();
var el = $(this).attr('data-mainContent');
$('#mainContent div#' + el).fadeIn("Slow");
});
});
}
你是这个意思吗?您可以使用 if
语句查看单击的按钮是否为 "gallery",然后隐藏 #mainContent
:
$(function(){
$('#mainContent').children().hide()
$('#home').fadeIn("Slow");
$('#menuBar').on('click', 'a', function(){
$('#mainContent').children().hide();
var el = $(this).attr('data-mainContent');
if(el == "gallery"){
$('#mainContent').children().hide()
}else{
$('#mainContent div#' + el).fadeIn("Slow");
}
});
});
仅供参考,您的 fiddle 无法正常工作,因为您没有在边栏中加载 jQuery