所以,我创建了一个简单的彩票,我用切换方法制作了选择器。 这是我的代码。
$( "span" ).click(function() {
$( this ).toggleClass( "span-selected" );
});
现在切换工作正常,但我想限制,以便在一个容器中只能选择7个数字。有没有办法实现这一目标。 这是我的JSBIN> http://jsbin.com/menawu/1/edit?js,output
答案 0 :(得分:5)
您需要检查该容器中是否已检查了7个元素,如下所示:
$( "span" ).click(function() {
if (
$(this).hasClass("span-selected") ||
(!$(this).hasClass(".span-selected") && $(this).closest(".num-cont").find(".span-selected").length < 7)
) {
$( this ).toggleClass( "span-selected" );
}
});
所以你的标准是:
答案 1 :(得分:2)
您可以使用此代码;
$( "span" ).click(function() {
if($(this).parent().parent().find('.span-selected').length===7){
alert('Limit');
}
else{
$( this ).toggleClass( "span-selected" );
}
});
答案 2 :(得分:2)
是,
您可以累计在变量中选择的票数,并且只有在count小于7时才允许切换,基于jQuery hasClass方法检查您的跨度是否先前被选中:
var countTicket = 0;
$( "span" ).click(function() {
if($(this).hasClass( "span-selected")) {
countTicket--;
$( this ).toggleClass( "span-selected" );
} else if(countTicket<7) {
$( this ).toggleClass( "span-selected" );
countTicket++;
}
});
答案 3 :(得分:2)
这是一个例子,有多个案例可以控制你的数字。
您可以使用hasClass/removeClass/addClass
$("span").click(function(){
if($(this).hasClass("selected"))
{
$(this).removeClass("selected");
}
else{
if($("span.selected").length<7)
{
$(this).addClass("selected");
}
else
console.log("7 span selected");
}
});
&#13;
span{
width:50px;
height:50px;
margin:10px;
background-color:#eee;
display:inline-table;
}
.selected{
background-color:red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span>
&#13;
答案 4 :(得分:1)
只需插入计数和最大变量
var max = 7;
var count = 0;
$("span").click(function() {
if (count < max) {
$(this).toggleClass("span-selected");
count++;
}
});
答案 5 :(得分:0)
您可以使用父容器获取所选项目的数量并计算它们:
$( "span" ).click(function() {
if($(this).closest('.num-cont').find('.span-selected').length==7){
alert('Limit');
}
else{
$( this ).toggleClass( "span-selected" );
}
});