1

我有一个表,其中包含一个 CheckBox 和 2 列。单击复选框时,我将行更改为黑色并将名称更改为<input type="hidden" name=old<input type="hidden" name=new然后在未选中时,它将行更改为正常。它仅在静态时起作用。

问题:但是当我添加动态行然后单击复选框。什么都没发生。我live已经使用了功能。但还是不行。

这是静态表的工作代码:

对于jquery部分:

$(".blackH").click(function(){
    if($(this).is(":checked")){
        $(this).parent().parent().css("background-color","#CCC");
        $("input[name='old\\["+ $(this).data("old") +"\\]']").attr("name","new[" + $(this).data("old") + "]");
    }
    else{
        $(this).parent().parent().css("background-color","#FFF");
        $("input[name='new\\["+ $(this).data("old") +"\\]']").attr("name","old[" + $(this).data("old") + "]");
    }
});

Live我使用但不工作的功能:

$(".blackH").click(function(){
if($(this).is(":checked")){
    $(this).parent().parent().css("background-color","#CCC");
    $("input[name='old\\["+ $(this).data("old") +"\\]']").attr("name","new[" + $(this).data("old") + "]");       
}
else{
    $(this).parent().parent().css("background-color","#FFF");
    $("input[name='new\\["+ $(this).data("old") +"\\]']").attr("name","old[" + $(this).data("old") + "]");
}
});

对于html部分:

        <tr class="trhighlight tagReflect {{tag_cnt}}" data-tagno="{{tag_cnt}}">
            <td><input type="checkbox" value="" class="del_chk blackH" data-savetag="{{tag_cnt}}"></td>
            <td style="width:70%;">DUMMY_DATA_1</td>
            <td class="" style="display: none;">DUMMY_DATA_2</td>
            <input type="hidden" name="old[{{tag_cnt}}]" value="">
        </tr>

希望有人会帮忙。谢谢。

4

1 回答 1

0

这里的演示环境没有问题,但我运行的是 jQuery 1.8.3。我建议使用更优雅的方法,例如...

$(function() {
    $("tr .blackH").live("click", function() {
        $(this).closest("tr").css("background-color", this.checked ? "#ccc" : "");
    });
});

希望这可以帮助。

于 2013-05-13T17:05:45.530 回答