[英]How to only make one div has toggled at one time when using toggle class?
$(document).ready(function(){ $("#items").children().click(function(){ $(this).toggleClass('clicked'); }); });
.clicked { background-color:red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id='items'> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div>
現在,我可以切換類以使div在單擊時變為紅色。 但是我仍然可以單擊另一個div使其變為紅色,然后將有兩個紅色的div。
如何只使一個div一次變紅?
使用removeClass
而not
排除當前選擇:
$(document).ready(function(){ $("#items").children().click(function(){ $('#items > div').not($(this).toggleClass('clicked')).removeClass('clicked'); }); });
.clicked { background-color:red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id='items'> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div>
$(document).ready(function(){
$("#items").children().click(function(){
$('.clicked').not($(this).toggleClass('clicked')).removeClass('clicked');
});
});
嘗試這個,
$(document).ready(function(){
$("#items").children().click(function(){
$(this).toggleClass('clicked') // toggle class of current element
.siblings('div') // get siblings of current elem
.removeClass('clicked'); // remove class clicked from siblings
});
});
$(document).ready(function() { $("#items").children().click(function() { $(this).toggleClass('clicked').siblings('div').removeClass('clicked'); }); });
.clicked { background-color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id='items'> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div>
刪除之類的clicked
來自所有其他兄弟div
秒。
使用siblings()
選擇同級元素。
獲取匹配的元素集中每個元素的同級,可以選擇使用選擇器進行過濾。
$(document).ready(function() { $("#items").children().click(function() { $(this).toggleClass('clicked').siblings('div').removeClass('clicked'); }); });
.clicked { background-color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id='items'> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div>
$(document).ready(function() { $("#items").children().click(function() { $(this) //clicked element .add('.clicked', this.parentNode)//add already '.clicked' child element in jq set .toggleClass('clicked');//toggle class for all elements in set }); });
.clicked { background-color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id='items'> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div>
你可以做:
$(document).ready(function(){
$("#items").children().click(function(){
$(this).siblings().removeClass('clicked');
$(this).addClass('clicked');
});
});
嗨,現在嘗試這種方式
$(document).ready(function(){
$("#items > div").click(function(){
$("#items").children().removeClass('clicked');
$(this).addClass('clicked');
});
});
$(document).ready(function(){ $("#items > div").click(function(){ $("#items").children().removeClass('clicked'); $(this).addClass('clicked'); }); });
.clicked { background-color:red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id='items'> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.