复选框详细信息视图

时间:2014-01-31 09:17:37

标签: jquery html css checkbox

我的情况是,我在表格中有详细信息行,其中复选框为选择组件

我期望的行为是

1)当我点击细节行图像时,该行应展开,显示其父行的详细信息,但不应选中该复选框,并且必须删除父行的背景颜色 - 正常工作

2)当打开详细信息行并单击复选框时,应选中该复选框,并且父行的背景颜色应更改正常工作

3)当详细信息行打开并且选中复选框时,如果我执行详细信息行的折叠,则复选框状态应保持原样,父行的背景颜色必须保持相同正常工作

当我选择第一行

时,以上所有情况都可以正常工作

问题是

当我选择第二行时,保留第一行checkox状态,但删除父行的背景颜色。 我正在使用 的 $(行).siblings( “选择”)addClass( “选择”);

为了保留先前选择的兄弟行的背景颜色

但它没有按预期工作请帮助

谢谢

**framework**.table.prototype._details_link_renderer = function(cell_value, is_detail_open)
{
    var details_img_url = this._properties.details_open_img_url;
    if(is_detail_open)
    {
    details_img_url = this._properties.details_close_img_url;
    }
    var img = $(document.createElement("img")).attr("src", details_img_url).addClass("open_close_img");
    var link = $(document.createElement("a")).attr("href", "#noAnchor").attr("title", rdx.i18n.get_string("rdx.table_show_hide_title")).append(img).bind(rdx.events.CLICK, {ns_table: this}, function(event) {
        var row=$(this).parents("tr:eq(0)");
        var rowInd =$(this).parents("tr:eq(0)").index()/2;
        //var rowcount=$(row).index()+1;
        $(row).siblings(".selected").addClass("selected");
        event.data.ns_table._toggle_details_row($(this).parents("tr:eq(0)").index()/2);

        if(!$(event.data.ns_table._select_checkbox_array[rowInd]).is(':checked'))
        {
        $(row).toggleClass("selected");
        }
        if ($(event.data.ns_table._select_checkbox_array[rowInd]).is(':checked'))
       {
         $(row).addClass("selected") ;
         //$(row).siblings(".selected").addClass("selected");
        }
        event.stopPropagation();
    });

我有自己定义的框架

1 个答案:

答案 0 :(得分:0)

首先,$(row).siblings(".selected").addClass("selected");可以删除,因为它不会执行任何操作:它会选择$(row)属性包含class的{​​{1}}的兄弟姐妹。 selected 只会添加该类

因此,.addClass("selected");之前有两个if语句。据我所知,它们可以被更简单的event.stopPropagation(); / if取代:

else

这会给你你想要的东西吗?