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

时间:2011-06-10 08:19:56

标签: jquery jquery-ui jqgrid

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

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

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

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

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

由于

2 个答案:

答案 0 :(得分:2)

jqGrid最多使用两个div来显示加载处理。如果loadui具有默认值'enable',则使用一个id为前缀为load_的div。如果您使用loadui rqual到'block',则会使用带有前缀lui_的ID的其他重叠div。

例如,如果您将<table>id="list"一起使用,那么在数据加载期间将使用的div的ID为'load_list',另外'lui_list'(如果loadui:'block' )。此外,在网格加载期间,在网格加载期间,另一个网格参数$("#list")[0].grid.hDiv.loading将设置为true

因此,您可以在selectjQuery UI tabs事件处理程序内部实现隐藏并显示加载div。此外,您可以测试$("#grid_id")[0].grid.hDiv.loading以验证网格是否确实处于加载状态。

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

答案 1 :(得分:0)

它之所以这样做,是因为在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更改为更具体的选择器。

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