jqgrid和jquery选项卡:加载文本不隐藏

我正在使用jquery UI Tabs(1.8.9),我的网页上有一些标签。

在每个选项卡上,我有一个jqGrid 3.8.2,它在加载页面时加载json数据。

对于第一个选项卡,一切正常,我看到jqGrid中的加载黄色框,它就消失了。 但问题是,当我移动到另一个选项卡时,我看到jqGrid已加载,但我有来自JQGrid的小loadui仍出现在所有jqgrid的隐藏选项卡上。 刷新隐藏它..

这是一个错误吗? 我可以解决的问题? 或者有什么方法可以在我更改标签时隐藏它? (当我改变标签时,我试图隐藏$(“。loading”)但它不起作用..

嗯,一个细节:它只在IE7中,而不是在Firefox和Chrome中

谢谢

jqGrid最多使用两个div来显示加载处理。 如果loadui具有默认值'enable' ,则使用具有前缀load_的id 'enable'一个div。 如果使用loadui rqual”block 'block' ,则使用具有前缀lui_的id的附加overlay div。

例如,如果使用带有id="list"

,将在数据加载期间使用的div的id为'load_list' ,另外还有'lui_list' (如果是loadui:'block' )。 此外,在网格加载期间,在网格加载期间,另一个网格参数$("#list")[0].grid.hDiv.loading将设置为true

因此,您可以在jQuery UI选项卡的select事件处理程序内部实现隐藏和显示加载div。 另外,您可以测试$("#grid_id")[0].grid.hDiv.loading来validation网格是否真的处于加载状态。

您可以在此处阅读有关jqGrid使用的加载潜水的更多信息。

这样做的原因是因为在IE中如果元素在隐藏元素中,它将不会正确隐藏它。 我不确定这会影响所有版本,但肯定是6和7。

无论如何,我发现的修复方法是通过移动屏幕来隐藏jQuery UI选项卡,而不是通过将可见性设置为无。

这是通过更改ui-tabs-hide类的CSS来完成的。 将以下内容添加到包含选项卡的页面上的CSS中

 .ui-tabs .ui-tabs-hide { display: block !important; position:absolute; left: -99999px; top: 0; } 

第一个.ui-tabs可以更改为更具体的选择器。

无论如何,更换后装载箱应按预期消失。