复选框在手动触发后停止工作
Checkbox stops working after triggered manually
我写了这个jQuery片段来处理tr
点击,向其中添加一个引导类并点击其中的第一个checkbox
。
$('body').on('change', '.select-all-children', function(e) {
var checked = this.checked;
$('.select-child').each(function() {
$(this).prop('checked', checked);
if(checked) {
$(this).parent().parent().addClass('warning');
} else {
$(this).parent().parent().removeClass('warning');
}
});
});
$('body').on('click', '.table-selectable tbody tr', function(e) {
var checkbox = $(this).find('.select-child');
checkbox.click();
var checked = checkbox[0].checked;
if(checked) {
$(this).addClass('warning');
} else {
$(this).removeClass('warning');
}
});
$('body').on('change', '.select-child', function(e) {
var checked_total = $('.select-child:checked').length;
if(checked_total == $('.select-child').length) {
$('.select-all-children').prop('checked', true);
} else {
$('.select-all-children').prop('checked', false);
}
});
每当我点击tr
并触发此调用时:
checkbox.click();
我不能再点击复选框了,但tr
点击效果很好。
这是我的表的HTML标记:
<table class="table table-selectable">
<thead>
<tr>
<th>
<input type="checkbox" class="select-all-children">
</th>
</tr>
</thead>
<tbody>
<tr>
<tr>
<td>
<input type="checkbox" class="select-child">
</td>
</tr>
</tr>
</tbody>
</table>
你可以比你的方法更简单地完成它,就像这样:
处理全选复选框:
(只会选中/取消选中行中的FIRST复选框,并将warning
类添加到所选行)
$('.select-all-children').click(function (e) {
$(this).closest('table').find('tr td:first-child input:checkbox').prop('checked', this.checked);
if (this.checked){
$(this).closest('table').find('tbody tr').addClass('warning');
} else {
$(this).closest('table').find('tbody tr').removeClass('warning');
}
});
Handling点击tr:(我们也可以使用toggleClass
而不是add/remove class
)
$('.table-selectable tbody tr td:first-child input:checkbox').on('click', function(e) {
$(this).closest('tr').toggleClass('warning');
});
现在请参阅JsFiddle DEMO,我希望它对您有效,谢谢
我已经像这样更改了代码,复选框工作正常。请查看JQuery代码中的更改并附上注释。
$('body').on('change','.select all children',函数(e){var checked=this.checked;
$('.select-child').each(function () {
$(this).prop('checked', checked);
if (checked) {
$(this).parent().parent().addClass('warning');
} else {
$(this).parent().parent().removeClass('warning');
}
});
});
$('body').on('click', '.table-selectable tbody tr', function (e) {
var checkbox = $(this).find('.select-child');
//Old code commented:
//checkbox.click();
//Modified Code:
checked.click();
var checked = checkbox[0].checked;
if (checked) {
$(this).addClass('warning');
} else {
$(this).removeClass('warning');
}
});
$('body').on('change', '.select-child', function (e) {
var checked_total = $('.select-child:checked').length;
if (checked_total == $('.select-child').length) {
$('.select-all-children').prop('checked', true);
} else {
$('.select-all-children').prop('checked', false);
}
});
谢谢。
相关文章:
- 复选框一次选中一个不在gridview中工作
- 更改无法正常工作的复选框的属性
- 复选框选择/取消选择触发器第一次工作,但在随后的尝试中失败
- 复选框在手动触发后停止工作
- 复选框的checked属性的修改不会;工作不正常
- 我正试图获得一个带有复选框的多选下拉列表,在填充项目和获得所有选中的工作时遇到了一些问题
- ajax后表单复选框更改时jquery ajax不工作
- 当选中一个复选框时,表单中的所有其他复选框都必须禁用-不工作
- 检测Bootstrap Switch Jquery中的类更改(将工作复选框JS转换为按钮JS)
- jQuery检查所有复选框只工作一次
- Rally自定义应用程序复选框筛选器不工作
- 在具有单击事件的 li 内时停止选中两次复选框
- 使按钮像复选框一样工作,挖空js
- Jquery attr 无法正常工作复选框必需属性
- “选择所有行无法正常工作”复选框
- 使用每个切换复选框停止工作
- 在jQuery或JavaScript中选中多个复选框后,停止选中复选框
- :空白选择器不工作复选框jQuery Validate()
- 单击几次后,Greasemonkey脚本停止设置复选框
- 在为几个问题检查了多个复选框后,如何停止检查复选框