Firefox、jQuery和jqgrid中的文本装饰问题

Firefox、jQuery和jqgrid中的文本装饰问题,firefox,jqgrid,styles,word-wrap,Firefox,Jqgrid,Styles,Word Wrap,我发布了第五个Firefox不显示样式“文本装饰:线通过” 我正在使用jqGrid显示药物列表。如果药物无效,则必须交叉使用。在我的afterInsertRow事件中,我执行以下操作: $('#' + rowid).css({ 'text-decoration': 'line-through', 'color': 'red' }) 它适用于IE和Chrome,但Firefox只显示红色文本,不越界 当我查看firebug输出时,我可以看到元素具有包括文本装饰在内的样式定义,但它只是没有显示我

我发布了第五个Firefox不显示样式“文本装饰:线通过”

我正在使用jqGrid显示药物列表。如果药物无效,则必须交叉使用。在我的afterInsertRow事件中,我执行以下操作:

$('#' + rowid).css({ 'text-decoration': 'line-through', 'color': 'red' }) 
它适用于IE和Chrome,但Firefox只显示红色文本,不越界


当我查看firebug输出时,我可以看到
元素具有包括文本装饰在内的样式定义,但它只是没有显示我需要的方式。

如果您将代码修改为

$('#' + ids[1] + " > td").css(
    { 'text-decoration': 'line-through', 'color': 'red' });
如果威尔有用的话。如果使用
rownumbers:true
并且不希望删除行号,则可以使用

$('#' + ids[1] + " > td:not(.jqgrid-rownum)").css(
    { 'text-decoration': 'line-through', 'color': 'red' });
还有一个小建议:使用
gridview:true
更快地填充jqGrid。在此模式下,jqGrid将整个表包含作为siring填充,并插入一个
jqrey.append
操作。
afterInsertRow
事件的使用违反了规则,因为每一行都将插入一个
jQurey.append
操作,然后将调用
afterInsertRow
。所以我的建议是:使用
gridview:true
,不要使用
afterInsertRow
。要更改css,请使用
loadComplete
gridComplete
,例如:

jQuery('#list').jqGrid({
    //...
    loadComplete: function() {
        var ids = jQuery('#list').getDataIDs();
        for (var i = 0; i < ids.length; i++) {
            $('#' + ids[i] + ' > td:not(.jqgrid-rownum)').css(
                { 'text-decoration': 'line-through', 'color': 'red' });
        }
    }
    // ...
});
jQuery('#list').jqGrid({
//...
loadComplete:function(){
var id=jQuery('#list').getDataId();
对于(变量i=0;itd:not(.jqgrid rownum)”.css(
{‘文本装饰’:‘线穿过’,‘颜色’:‘红色’});
}
}
// ...
});

如果您将代码修改为

$('#' + ids[1] + " > td").css(
    { 'text-decoration': 'line-through', 'color': 'red' });
如果威尔有用的话。如果使用
rownumbers:true
并且不希望删除行号,则可以使用

$('#' + ids[1] + " > td:not(.jqgrid-rownum)").css(
    { 'text-decoration': 'line-through', 'color': 'red' });
还有一个小建议:使用
gridview:true
更快地填充jqGrid。在此模式下,jqGrid将整个表包含作为siring填充,并插入一个
jqrey.append
操作。
afterInsertRow
事件的使用违反了规则,因为每一行都将插入一个
jQurey.append
操作,然后将调用
afterInsertRow
。所以我的建议是:使用
gridview:true
,不要使用
afterInsertRow
。要更改css,请使用
loadComplete
gridComplete
,例如:

jQuery('#list').jqGrid({
    //...
    loadComplete: function() {
        var ids = jQuery('#list').getDataIDs();
        for (var i = 0; i < ids.length; i++) {
            $('#' + ids[i] + ' > td:not(.jqgrid-rownum)').css(
                { 'text-decoration': 'line-through', 'color': 'red' });
        }
    }
    // ...
});
jQuery('#list').jqGrid({
//...
loadComplete:function(){
var id=jQuery('#list').getDataId();
对于(变量i=0;itd:not(.jqgrid rownum)”.css(
{‘文本装饰’:‘线穿过’,‘颜色’:‘红色’});
}
}
// ...
});

感谢您的详细回复。我之所以使用afterInsertRow,是因为我的结果集不太大,它最多只能保存20-25条记录,所以我不必担心加载速度。谢谢您的详细回复。我之所以使用afterInsertRow,是因为我的结果集并不是很大,它最多只能保存20-25条记录,所以我不必担心加载速度。