我有一个滑块,当我单击导航按钮时,我想将类“ active”放在一个元素上,将“ active2”放在另一个元素上。这是我的代码...不起作用。它可以在第一张幻灯片上使用,这使我相信单击该类不会将它添加到其他幻灯片上。
<script type="text/javascript">
$(document).ready(function(){
$('input[name="slider"]').click(function(event){
$('.top').removeClass('active');
$('.bkg').removeClass('active2');
$('.slider-wrapper').find('div').eq($(this).index()).find('.top').addClass('active');
$('.slider-wrapper').find('div').eq($(this).index()).find('.bkg').addClass('active2');
});
});
</script>
HTML:
<div class="wrapper">
<input checked type=radio name="slider" id="slide1" />
<input type=radio name="slider" id="slide2" />
<div class="slider-wrapper">
<div class="inner">
<section>
<div class="top active">
<img src="images/test.png">
</div>
<div class="bkg">
<a class="active2">hello</a>
<img class="bkg-image" src="images/test.jpg">
<div class="overlay"></div>
</div>
</section>
<section>
<div class="top">
<img src="images/test.png">
</div>
<div class="bkg">
<a class="active2">hello</a>
<img class="bkg-image" src="images/test.jpg">
<div class="overlay"></div>
</div>
</section>
</div>
<!-- .inner -->
</div>
<!-- .slider-wrapper -->
<div class="slider-dot-control">
<label for=slide1></label>
<label for=slide2></label>
</div>
</div>
</article>
答案 0 :(得分:0)
find('div')
发现了所有位于slider-wrapper下的div,而不仅仅是顶级的div。这导致后来的链式选择器无法按照您想要的方式工作。
如果将查找结果切换为.top和.bkg,则eq
选择器似乎可以正常工作。
$(document).ready(function(){
$('input[name="slider"]').click(function(event){
$('.top').removeClass('active');
$('.bkg').removeClass('active2');
$('.slider-wrapper').find('.top').eq($(this).index()).addClass('active');
$('.slider-wrapper').find('.bkg').eq($(this).index()).addClass('active2');
});
});