I know this code is working, but how do I overwrite the css for .show (display: none) and the background-color? If I click a already selected button all buttons should be the default (blue) color and the all project should be shown. but the background-color and display: none. don't appear.
$(".category_item").click(function() {
var category = $(this).attr("id");
if ($(this).hasClass("selected")) {
$("#design, #motiongraphic, #photography").css("background-color", "green");
$(".design, .motiongraphic, .photography").show();
}
//changes category and background-color
if (category === "design") {
$(".motiongraphic, .photography").hide();
$("#motiongraphic, #photography").css("background-color", "#313b50").removeClass("selected");
$(".design").show();
$("#design").css("background-color", "#d96b6e").addClass("selected");
}
if (category === "motiongraphic") {
$(".design, .photography").hide();
$("#design, #photography").css("background-color", "#313b50").removeClass("selected");
$(".motiongraphic").show();
$("#motiongraphic").css("background-color", "#47beb4").addClass("selected");
}
if (category === "photography") {
$(".design, .motiongraphic").hide();
$("#design, #motiongraphic").css("background-color", "#313b50").removeClass("selected");
$(".photography").show();
$("#photography").css("background-color", "#8a6bbe").addClass("selected");
}
});
div#i_buttons button {
padding: 15px;
margin: 0 2% 6% 2%;
text-align: center;
text-decoration: none;
font-family: "Open Sans", serif;
font-style: italic;
font-size: 16px;
width: 170px;
background-color: #313b50;
color: #d9d9d9;
border: none;
border-radius: 8px;
transition-duration: 0.2s;
-webkit-transition-duration: 0.2s;
}
div#i_buttons button:hover {
cursor: pointer;
}
div#i_buttons button#design:hover {
background-color: #d96b6e !important;
}
div#i_buttons button#motiongraphic:hover {
background-color: #47beb4 !important;
}
div#i_buttons button#photography:hover {
background-color: #8a6bbe !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Buttons -->
<div id="i_buttons">
<button type="button" class="category_item" id="design">3D design</button>
<button type="button" class="category_item" id="motiongraphic">motion graphics</button>
<button type="button" class="category_item" id="photography">photography</button>
</div>
<!-- Gallery -->
<div id="i_container">
<div id="i_grid">
<div class="i_cell design">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/3Ddesign.jpg" alt="Project 01"></a>
</div>
<div class="i_cell design">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/3Ddesign.jpg" alt="Project 02"></a>
</div>
<div class="i_cell design">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/3Ddesign.jpg" alt="Project 03"></a>
</div>
<div class="i_cell motiongraphic">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/MotionGraphics.jpg" alt="Project 04"></a>
</div>
<div class="i_cell motiongraphic">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/MotionGraphics.jpg" alt="Project 05"></a>
</div>
<div class="i_cell motiongraphic">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/MotionGraphics.jpg" alt="Project 06"></a>
</div>
<div class="i_cell photography">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/Photography.jpg" alt="Project 07"></a>
</div>
<div class="i_cell photography">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/Photography.jpg" alt="Project 08"></a>
</div>
<div class="i_cell photography">
<a target="_blank" href="content.html">
<div class="overlay"></div><img src="img/Photography.jpg" alt="Project 09"></a>
</div>
</div>
</div>
showmethod ?displayto know if that element should be set toshow()orhide()colorattribut (so it changes the text-color of the button), but not for thebackground-colorattribut. I can't figure out why. It's the same with the functionshow. I set all buttons todisplaybut it doesn't overwrite the before sethideattribute.