【发布时间】:2018-01-31 05:02:40
【问题描述】:
我正在尝试使用一个我认为非常有用的脚本,但我一定不会得到它。它只是一个简单的复选框,突出显示行类型的脚本,但我在某个地方卡住了。
$(document).ready(function() {
$("input[type='checkbox']").on('change', function() {
if ($(this).is(":checked")) {
$(this).closest('tr').addClass("highlight");
} else {
$(this).closest('tr').removeClass("highlight");
}
});
});
.highlight {
background-color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input id="checkboxSelect" type="checkbox"></td>
<td>231540</td>
<td>2018-02-25 00:00:00</td>
<td>93.50</td>
</tr>
<table>
更新 //
我还尝试了以下脚本的建议答案之一:
$("#checkboxSelect").click(function(){
if ($(this).is(":checked")){
$(this).parent().parent().removeClass("highlight");
alert('hello');}
else{
$(this).parent().parent().addClass("highlight");
alert('goodbye');}
});
它仍然不会触发,我已经在 jsFiddle 上对其进行了测试,它确实在那里工作,但在我的环境中它不会触发。
如果它意味着什么,这在技术上就是这些行的生成方式:
$.ajax({
type:'GET',
url: '/customers/details/openInvoices',
dataType:'json',
data: {
'customerID': $('select[name=payer_id]').val(),
'_token': $('input[name=_token]').val(),
},
success: function(data) {
$('.errorTitle').addClass('hidden');
$('.errorContent').addClass('hidden');
if ((data.errors)) {
setTimeout(function () {
$('#createOrigin').modal('show');
toastr.error('Check your inputs!', 'Error Alert', {timeOut: 5000});
}, 500);
if (data.errors.title) {
$('.errorTitle').removeClass('hidden');
$('.errorTitle').text(data.errors.title);
}
if (data.errors.content) {
$('.errorContent').removeClass('hidden');
$('.errorContent').text(data.errors.content);
}
} else {
$.each(data, function(i,val) {
$('<tr>').append(
$('<td>').html('<input type="checkbox" class="checkboxSelect">'),
$('<td>').text(val.pro_number),
$('<td>').text(val.due_date),
$('<td>').text(val.balance)).appendTo('#customerOpenInvoicesTable');
$('#openInvoicesOverlay').html('');
$('#openInvoicesOverlay').removeClass('overlay');
});
}
}
});
【问题讨论】:
-
这似乎已经是正确的
-
我已经根据您的代码及其工作创建了一个 sn-p。你能重现这个问题吗?
-
一切都完全一样:/我什至添加了您的选择,以便对行进行明显的样式设置。但是没有添加行类。你有什么建议可以通过替代实现这一目标吗?也许直接在复选框上引用 onChange 事件函数?
标签: javascript jquery html checkbox