我正试图在点击时切换潜水。但是当我试图切换时,其他人也会被切换 我想要一个适用于所有div的单个代码,但只需单击即可切换指定的潜水而不是其他。
My jquery Code:
<script>
$(document).ready(function() {
$('.more').click(function() {
$('.read').slideToggle("fast");
});
});
$('.box').click(function (e) {
$( '#' + $(this).data('toggleTarget') ).slideToggle(300);
});
</script>
i add the demo link here
[http://jsfiddle.net/20f2jkk7][1]
答案 0 :(得分:0)
您正在使用类选择器,它将选择类read
的所有元素。使用.nextAll('.read:first')
获取所需的div
$('.more').click(function () {
$(this).nextAll('.read:first').slideToggle("fast");
});
但我建议将每个内容放在这样的div中
<div class="content">
<div class="more"></div>
<div class="read"></div>
</div>
然后使用.closest()来获取div,这将更加动态。
$(this).closest('.content').find('.read').slideToggle();
答案 1 :(得分:0)
在您的代码中,您选择使用read
类切换所有带有more
类的所有div。
你需要做的是你需要用它来找出被点击的那个,然后通过遍历下一个和下一个找到应该切换的div。
$('.more').click(function () {
$(this).next().next().slideToggle("fast");
});
答案 2 :(得分:0)
您应该使用each
click
函数代码。这样每个&#34;更多&#34;按钮将仅输出它的相应索引&#34;读取&#34;如果所有内容都是串联的内容...就像each
将遍历的数组一样...然后在&#34; read&#34;选择器,添加eq(索引)以指定在遍历&#34;更多&#34;期间发生的确切读取内容元素。通过each
...
$(document).ready(function() {
$('.more').each(function(index) {
$(this).on("click", function(){
$('.read:eq(' + index + ')').slideToggle("fast");
});
});
});
$('.box').click(function (e) {
$( '#' + $(this).data('toggleTarget') ).slideToggle(300);
});
这是一个有效的工作人员:http://jsfiddle.net/20f2jkk7/3/