[英]toggleClass select in loop jquery
I have a loop: 我有一个循环:
$(document).ready(function(){
$(".viewonclick").click(function(){
$(this).closest('.viewonclick').next(".hideonclick").slideToggle();
$(".plus").toggleClass("hideplus");
});
});
.viewonclick i{
position : absolute;
right: 220px;
display: inline;
}
.viewonclick .hideplus{
display: none;
}
@foreach($customcat as $c)
<div>
<div class="viewonclick"><h4>{{ $c->Custom->name }}
<i class="plus icon"></i>
<i class="minus icon"></i>
</h4></div>
<ul class="hideonclick">
@foreach($customvalue as $v)
<li>
@if($v->custom_id == $c->custom_id)
<a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}">
{{ $v->value }}
</a>
@endif
</li>
@endforeach
</ul>
</div>
@endforeach
When the loop works all elements having the class plus
are changed to have hideplus
instead. 当循环工作时,所有具有类
plus
元素都会改为具有hideplus
。 I only need the clicked element to take this class. 我只需要clicked元素来上这堂课。 I tried the
.next()
and .closest()
method. 我尝试了
.next()
和.closest()
方法。 It worked with .slideToggle()
but not with .toggleClass()
. 它可以与
.slideToggle()
一起使用,但不能与.toggleClass()
。
This because you have this line: 这是因为您有以下行:
$(".plus").toggleClass("hideplus");
and this line of code acts on all ".plus" elements. 并且这行代码作用于所有“ .plus”元素。
Change this to: 更改为:
$(this).find(".plus").toggleClass("hideplus");
An example: 一个例子:
$(function () { $('.plus.icon').toggleClass("hideplus"); $(".viewonclick").click(function(){ $(this).next(".hideonclick").slideToggle(); $(this).find("i").toggleClass("hideplus"); }); });
.viewonclick i{ position : absolute; right: 220px; display: inline; } .viewonclick .hideplus{ display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <div class="viewonclick"><h4>name1 <i class="plus icon">+</i> <i class="minus icon">-</i> </h4></div> <ul class="hideonclick"> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> </ul> </div> <div> <div class="viewonclick"><h4>name2 <i class="plus icon">+</i> <i class="minus icon">-</i> </h4></div> <ul class="hideonclick"> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> </ul> </div> <div> <div class="viewonclick"><h4>name3 <i class="plus icon">+</i> <i class="minus icon">-</i> </h4></div> <ul class="hideonclick"> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> <li> <a class="customcatvalue" data-customid="{{$c->custom_id}}" data-valueid="{{$v->id}}" data-section="{{ $section->id }}"> value1 </a> </li> </ul> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.