【发布时间】:2019-01-22 22:16:07
【问题描述】:
我正在尝试添加一个类(以便我以后可以设置样式)表行,其中选中了复选框(JQuery 和 Google Apps 脚本)
目前,我有一些在使用按钮时可以使用的功能。但是,当我尝试修改它们时,它们并没有按预期工作。我什至尝试过.addCss,但没有奏效。当我检查控制台时,我看不到曾经添加过一个类。我曾经让它工作过,但现在似乎无法回到那个点!
我看到 THIS 并对其进行了修改,但 css 没有显示出来。
相关代码
<script>
//BUTTONS
$(document).ready(function () {
$("#tbody tr").on('input', function () {
var checkbox= $(this).closest('tr').find('[type="checkbox"]');
checkbox.prop('checked', $(this).val());
});
//HIDE UNCHECKED ROWS
$("#clicker").click(function () {
$('[type="checkbox"]:not(:checked)').closest('tr').hide();
return false;
});
//SHOW ALL ROWS
$("#show").click(function () {
$('[type="checkbox"]:not(:checked)').closest('tr').show();
return false;
});
//CLEAR ALL CHECK MARKS
$("#clear").click(function () {
$('[type="checkbox"]').removeAttr('checked');
return false;
});
});
</script>
<script>
//CURRENT ATTEMPT
//I can check all boxes, but styling doesn't work.
function setClass() {
var checkboxes = $('tbody').find('.checkbox');
checkboxes.closest('tr').toggleClass('on', false);
checkboxes.not('.check_all').filter(':checked').closest('tr').toggleClass('on', true);
}
$(function($) {
$(".check_all").on('change', function() {
var checkAll = $(this).prop("checked");
$(".checkbox").prop('checked', checkAll);
var checkboxes = $('tbody').find('.checkbox')
.eq(0).trigger('setclass');
});
var checkboxes = $('tbody').find('.checkbox');
checkboxes.on('change', function() {
if ($(this).prop("checked")) {
$(".check_all").prop('checked', false);
}
if ($('.checkbox:checked').length == $('.checkbox').length) {
$(".check_all").prop('checked', true);
}
$(this).trigger('setclass');
});
checkboxes.on('setclass', setClass);
checkboxes.eq(0).trigger('setclass');
});
</script>
风格
<style>
table, td {
border: 1px solid black;
border-collapse: collapse;
}
//CELL WIDTH
td {
min-width:100px;
}
//TABLE HEAD
th {
font-size: 20px;
border: 2px solid black;
background: #66e9ff;
border-collapse: collapse;
}
//STYLING FOR CHECKED ROW
tr.on td {
background: #ffbbbb;
}
//STYLING FOR CHECKED ROW
.on>td {
color: dark;
}
//STYLING FOR HOVERING OVER ROW
#tbody tr:hover {
background-color:yellow;
}
//SELECTABLE
#feedback { font-size: 1.4em; }
#table .ui-selecting { background: #FECA40; }
#table .ui-selected { background: #928bff; color: white; }
#table { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#table tr { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
</style>
- 如何在选中复选框的表格行中添加一个类?
- 子问题,我应该以不同的方式编写我的其他复选框功能吗?
【问题讨论】:
-
请提供一个最小、完整和可验证的示例:stackoverflow.com/help/mcve
-
两件事,我看到
input,这不是事件类型。我想你的意思是change。还有两个,stackoverflow.com/questions/6899859/… 的可能重复项 -
@Twisty
input是有效的事件类型。这就像改变,但你不必先模糊。 -
@Taplar 是使用
<tr>元素的事件吗? -
如果事件是从嵌套的孩子冒出来的,是的
标签: jquery jquery-ui google-apps-script