jQuery .removeClass and addClass
I cant remove or add the class within a div and trying to remove the class .wew when the .st-collapse is visible and add class .wew1 if the .st-collapse is hidden
so my flow is go to each parent div and find its div child
my HTML
<div class="st">
<div class="st-heading wew">
<a href="#">Link 1</a>
</div>
<div class="st-collapse">
<ul>
<li><a href="#">Sub-Link 1</a></li>
<li><a href="#">Sub-Link 2</a></li>
<li><a href="#">Sub-Link 3</a></li>
</ul>
</div>
</div>
<div class="st">
<div class="st-heading wew">
<a href="#">Link 1</a>
</div>
<div class="st-collapse">
<ul>
<li><a href="#">Sub-Link 1</a></li>
<li><a href="#">Sub-Link 2</a></li>
<li><a href="#">Sub-Link 3</a></li>
</ul>
</div>
</div>I'm not 100% sure (I'm probably 70% sure actually) about what your problem is, since you posted a statement and not a question. So let me know if I'm way off or close or whatever.
The classes were not provided and I assume it must be of some importance since we are dealing with visibility and two classes(probably with diametrically opposed properties involving either display , visibility , and/or opacity . So I made my own classes .off and .on .
.st-heading.on + .st-collapse {
opacity: 1;
}
.st-heading.off + .st-collapse {
opacity: 0;
}
The classes in question belong to .st-header so I added the + adjacent sibling selector to indicate that the visibility of .st-collapse hinges upon whether .st-heading is .off or .on . I shortened the jQuery by:
...removing .each() because with jQuery you don't need to be specific in simple cases. $('.st-heading') will find each .st-heading on the page as well...
...replacing add/removeClass() with toggleClass()
<!DOCTYPE html>
<html>
<head>
<script data-require="jquery@2.2.4" data-semver="2.2.4" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<style>
.st-heading.on + .st-collapse {
opacity: 1;
}
.st-heading.off + .st-collapse {
opacity: 0;
}
</style>
</head>
<body>
<section class="st">
<div class="st-heading off">
<a href="#">Link 1</a>
</div>
<div class="st-collapse">
<ul>
<li>
<a href="#">Sub-Link 1</a>
</li>
<li>
<a href="#">Sub-Link 2</a>
</li>
<li>
<a href="#">Sub-Link 3</a>
</li>
</ul>
</div>
</section>
<section class="st">
<div class="st-heading on">
<a href="#">Link 1</a>
</div>
<div class="st-collapse">
<ul>
<li>
<a href="#">Sub-Link 1</a>
</li>
<li>
<a href="#">Sub-Link 2</a>
</li>
<li>
<a href="#">Sub-Link 3</a>
</li>
</ul>
</div>
</section>
<script>
$(".st-heading").toggleClass('on off');
</script>
</body>
</html>Code is working fine
check the bin at Working Demo of Code
I have did that at click event! Check!
Maybe jQuery is missing in your page
上一篇: 隐藏元素但保持空间
