我有一个非常简单的JS代码,它只做了一件事,即在页面上的特定元素上切换一个open类。问题是,我有4个重复的.clickSlide元素和.sub_menu元素,当我点击其中一个元素触发代码时,所有元素都会得到open类。只有其中一个关注的元素应该得到open类。
我最好的猜测是在JS中缺少某种this。但我对这个问题的解决方案持开放态度!
jQuery(document).ready(function($) {
$(".clickSlide").click(function() {
$(".sub_menu").toggleClass("open");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ht_course_one">
<ul class="select-menu dropdown">
<li class="clickSlide">
<ul class="sub_menu">
<li></li>
</ul>
</li>
</ul>
</div>
<div class="ht_course_two">
<ul class="select-menu">
<li class="clickSlide">
<ul class="sub_menu">
<li></li>
</ul>
</li>
</ul>
</div>
<div class="ht_course_three">
<ul class="select-menu">
<li class="clickSlide">
<ul class="sub_menu">
<li></li>
</ul>
</li>
</ul>
</div>
<div class="ht_course_four">
<ul class="select-menu">
<li class="clickSlide">
<ul class="sub_menu">
<li></li>
</ul>
</li>
</ul>
</div>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
所以解决方案(基于Anass Kartit的回答)是这样的:
jQuery(document).ready(function($) { $(".clickSlide").click(function(){ $(this).children(".sub_menu").toggleClass("open"); }); });