仅添加 class 的单个实例
Adding only a single instance of a class
我正在尝试使用 jQuery 向元素添加 class。如果用户单击一个元素,它会添加一个 class,我可以这样做,但我只希望该 class 的 1 个实例处于活动状态,因此如果用户单击其他 class ] 然后从前一个元素中删除并添加到当前元素中。
https://jsfiddle.net/gsuxjce2/3/
<div class="row">
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
</div>
.col {
width: 25%;
float: left;
}
.box {
width: 50px;
height: 50px;
background-color: red;
cursor: pointer;
}
.added {
background-color: blue;
}
$('.box').click(function() {
$(this).toggleClass('added');
if ( $(this).hasClass('added'); ) {
$(this).removeClass('added');
} else {
$(this).toggleClass('added');
}
});
只需将此添加到您 click
活动的开头:
jQuery(".added").each(function(i,el){
jQuery(el).removeClass("added")
});
这会删除 class 的所有实例,这样当您添加一个新实例时,它将是独一无二的。
$('.added').removeClass('added');
在一切之前在您的点击事件中。
首先从所有 .box
元素中删除 .added
class,然后将其添加到用 this
:
单击的元素中
$('.box').click(function() {
$('.box').removeClass('added');
$(this).addClass('added');
});
$('.box').click(function() {
$('.box').removeClass('added');
$(this).addClass('added');
});
.col {
width: 25%;
float: left;
}
.box {
width: 50px;
height: 50px;
background-color: red;
cursor: pointer;
}
.added {
background-color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="row">
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
</div>
我正在尝试使用 jQuery 向元素添加 class。如果用户单击一个元素,它会添加一个 class,我可以这样做,但我只希望该 class 的 1 个实例处于活动状态,因此如果用户单击其他 class ] 然后从前一个元素中删除并添加到当前元素中。
https://jsfiddle.net/gsuxjce2/3/
<div class="row">
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
</div>
.col {
width: 25%;
float: left;
}
.box {
width: 50px;
height: 50px;
background-color: red;
cursor: pointer;
}
.added {
background-color: blue;
}
$('.box').click(function() {
$(this).toggleClass('added');
if ( $(this).hasClass('added'); ) {
$(this).removeClass('added');
} else {
$(this).toggleClass('added');
}
});
只需将此添加到您 click
活动的开头:
jQuery(".added").each(function(i,el){
jQuery(el).removeClass("added")
});
这会删除 class 的所有实例,这样当您添加一个新实例时,它将是独一无二的。
$('.added').removeClass('added');
在一切之前在您的点击事件中。
首先从所有 .box
元素中删除 .added
class,然后将其添加到用 this
:
$('.box').click(function() {
$('.box').removeClass('added');
$(this).addClass('added');
});
$('.box').click(function() {
$('.box').removeClass('added');
$(this).addClass('added');
});
.col {
width: 25%;
float: left;
}
.box {
width: 50px;
height: 50px;
background-color: red;
cursor: pointer;
}
.added {
background-color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="row">
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
<div class="col">
<div class="box">
</div>
</div>
</div>