仅单击一行中的一个项目
Click one item on a row only
当我选择了至少一个按钮时,是否可以禁用一行中的其他按钮?
$('.bet-offer div.option').click(function(){
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
} else {
$(this).addClass('selected');
}
});
结果应该是用户可以单击一行中的任何按钮,但一旦单击,该行中的其他项目应该已经被禁用。但是,用户仍然可以从其他行中的其他项目中选择按钮。
这是样品小提琴:http://jsfiddle.net/1vuf1gm7/3/
谢谢!
按钮在父div中只是兄弟姐妹。您可以使用.siblings()
来瞄准其他按钮并从中删除所选的类。
此外,您应该使用.toggleClass()
,而不是使用hasClass条件添加/删除:
$('.bet-offer div.option').click(function(){
$(this).siblings('.option').removeClass('selected')
$(this).toggleClass('selected')
});
工作演示
试试这样的东西:
$('.bet-offer div.option').click(function(){
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
$('.bet-offer div.option.disabled').removeClass("disabled");
} else {
$(this).addClass('selected');
$('.bet-offer div.option:not(.selected)').addClass("disabled");
}
});
这将向所有未选择的选项添加一个disabled
类。
这将禁用同一行中的其他按钮,而其中一个按钮具有类别selected
:
$('.bet-offer div.option').click(function(){
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
$(this).siblings().css('pointer-events', 'auto');
} else {
$(this).addClass('selected');
$(this).siblings().css('pointer-events', 'none');
}
});
相关文章:
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- angularjs移除焦点上的活动类并添加到下一个项目
- 如何通过AngularJS删除一个项目
- 获取每个项目中不为 null 的最后一个项目
- 在另一个项目中使用大理石测试rxjs5方法
- Asp.net 引导下拉菜单 - 选择一个项目
- 处理一个项目,想要添加以下菜单栏,并尽量减少向下滑动
- 在angularJs的选择框中预先选择一个项目
- jQuery 使用 ID 作为 URL 选择一个项目
- 我在Phaser有一个项目.我想在画布上的元素上做一个用户图像编辑器
- Javascript:使用 slice() 从数组中选择除一个项目之外的所有项目
- 如何从包含1000个项目的数组中随机选择一个项目
- 从列表中选择一个项目,
- 在可排序的JQuery UI列表中至少保留一个项目
- 仅单击一行中的一个项目
- 在angularjs中一次选择一个项目
- 有没有更花哨的方法可以在同一类中获得上一个项目
- 如何从用户制作的数组中具体拼接出一个项目
- 角度 - ng 网格通过分组按语法选择下一个/上一个项目
- 是否可以通过使用 javascript 获取数组中的一个项目来删除项目