当我双击卡片时,弹出对话框,然后可以创建复选框。到现在为止还挺好。然后我想如果我在对话框中创建一个复选框并通过按钮保存数据,则创建的复选框的值将显示在卡上。然后,如果选中了创建的所有复选框,则卡上会显示绿色背景。表明任务已完成。如下图所示:
当我创建两张牌时,其中一张牌表示任务已完成,如上图所示。在第二个你只是创建例如。两个复选框。然后问题是,绿色背景从第一张牌散开。如下图所示:
JQuery中的代码:
function CheckBoxesChecked() {
var numAll = $('input[type="checkbox"]').length;
var numChecked = $('input[type="checkbox"]:checked').length;
if (numChecked == numAll) {
$('.checkBoxCard').css("background-image", "none").addClass('jo');
}
else {
$('.checkBoxCard').removeClass('jo').css('background-image', "url('/Pages/Images/creampaper.png')");
}
}
我尝试通过以下代码修复它:
function CheckBoxesChecked() {
var numAll = $('input[type="checkbox"]').length;
var numChecked = $('input[type="checkbox"]:checked').length;
if (numChecked == numAll) {
$currentTarget.$('.checkBoxCard').css("background-image", "none").addClass('jo');
}
else {
$currentTarget.$('.checkBoxCard').removeClass('jo').css('background-image', "url('/Pages/Images/creampaper.png')");
}
}
我使用$ currentTarget来表示每张卡都是唯一的。但它似乎不起作用。知道如何解决问题吗?
答案 0 :(得分:2)
更改
$currentTarget.$('.checkBoxCard').css("background-image", "none").addClass('jo');
到
$currentTarget.find('.checkBoxCard').css("background-image", "none").addClass('jo');
请参阅更新后的fiddle。
答案 1 :(得分:0)
使用e.delegateTarget而不是target。见https://api.jquery.com/event.delegateTarget/