输入字段中的背景问题

时间:2014-05-22 08:27:00

标签: javascript jquery css checkbox textinput

当我双击卡片时,弹出对话框,然后可以创建复选框。到现在为止还挺好。然后我想如果我在对话框中创建一个复选框并通过按钮保存数据,则创建的复选框的值将显示在卡上。然后,如果选中了创建的所有复选框,则卡上会显示绿色背景。表明任务已完成。如下图所示:

Image

当我创建两张牌时,其中一张牌表示任务已完成,如上图所示。在第二个你只是创建例如。两个复选框。然后问题是,绿色背景从第一张牌散开。如下图所示:

Image2

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来表示每张卡都是唯一的。但它似乎不起作用。知道如何解决问题吗?

DEMO

2 个答案:

答案 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/