触发IE8的jquery问题

时间:2012-07-17 19:34:20

标签: jquery internet-explorer-8

我正在构建一个可以具有模板化视图的表。它们由jquery控制,它将根据复选框的模式隐藏和显示列。以下是我用来实现这一目标的功能。

模板选择仅适用于应显示的字段是下拉列表中选项值的csv。我首先找到任何仍然被检查的东西并触发一次点击,以便切换表格字段然后我带走支票。然后我遍历应该显示的列表,并切换列和复选框。

适用于IE 9,Chrome和Firefox。问题是大多数用户将使用IE 8。

为什么这不起作用?

// TOGGLE COLUMN LISTENER
$('input[type=checkbox]').change(function () {
    toggle_fields($(this).attr('id'));
});

// HANDLES THE TEMPLATE SELECTION

$("#select_field_template").live('change',
function () {
    var fields = '';
    fields = $.makeArray($(this).val().split(','));
    var count = fields.length;

    $("#field_form input[type=checkbox]").each(function () {
        if ($(this).attr('checked') == 'checked') {
            $(this).trigger('click');
            $(this).removeAttr('checked');
        }
    });

    for (var i = 0; i < count; i++) {
        $('#' + fields[i]).attr('checked', 'checked');
        toggle_fields(fields[i]);
    }
});

function toggle_fields(a) {
    var header = $("#data_table #tbl_" + a);
    if (header.length < 2) return;
    var column = $("#data_table td:nth-child(" + (header[1].column + 1) + ")");
    if (header.is(":visible")) {
        header.hide();
        column.hide();
    } else {
        header.show();
        column.show();
    }
    return;
}

0 个答案:

没有答案