我正在尝试制作一个按钮'对于一个复选框菜单,它会取消选中除最近的复选框之外的所有内容(在每个菜单中)。
我有一些有用的代码,但它是一种黑客攻击,而我想在一行中说:
此外,我需要在用户实际点击时触发事件(是checked
)吗?
triggerHandler

$('.only').on('click', function() {
$(this).closest('.checkbox').find('input').prop('checked', false);
$(this).closest('.row').find('input').prop('checked', true);
$(this).closest('.checkbox').find('input').prop('checked', false);
$(this).closest('.row').find('input').trigger('click');
});

.only {
border: 1px solid rgb(115, 135, 156);
float: right;
border: 1px;
border-radius: 5px;
padding-right: 7px;
padding-left: 7px;
}

答案 0 :(得分:1)
您触发了错误的事件,请使用更改删除重复的行。 注意:如果您触发"请单击"它会改变价值,同时改变"没有。
$('.only').on('click', function() {
$(this).closest('.checkbox').find('input[type="checkbox"]').prop('checked', false);
$(this).closest('.row').find('input[type="checkbox"]').prop('checked', true).trigger('change');
});
或者,你不能改变当前的值,无论它的值是什么(唯一的):
$('.only').on('click', function() {
var cb = $(this).closest('.checkbox').find('input[type="checkbox"]');
var me = $(this).closest('.row').find('input[type="checkbox"]');
cb.not(me).prop('checked', false);
me.trigger('change');
});
或者在OTHER复选框上执行触发:(因为它们正在改变)
cb.not(me).prop('checked', false).trigger('change');
答案 1 :(得分:0)
点击:
请参阅此jsfiddle:https://jsfiddle.net/4bjtuunr/5/
$('.only').on('click', function() {
var $current = $(this).closest('.row').find('input');
var $cbxs = $(this).closest('.checkbox').find('input');
$current.prop('checked', true);
$cbxs.not($current).prop('checked', false);
});
答案 2 :(得分:0)
如何使用它。这可以帮助您维护当前复选框的状态,而无需检查太多条件。
var row = $(this).parents(".row");
row.siblings().find('input').prop('checked', false);
row.find('input').prop('checked', true);