我使用的是jquery UI标签(1.8.9),我的网页上有一些标签。
在每个标签上,我有一个jqGrid 3.8.2,它在加载页面时加载json数据。
对于第一个标签,一切正常,我看到jqGrid中的加载黄色框,它就消失了。但问题是,当我移动到另一个选项卡时,我看到jqGrid已加载,但我有来自JQGrid的小loadui仍出现在所有jqgrid的隐藏选项卡上。刷新隐藏它..
这是一个错误吗?我可以解决的问题?或者有什么方法可以在我更改标签时隐藏它? (当我改变标签时,我试图隐藏$(“。loading”)但它不起作用..
嗯,一个细节:它只在IE7中,而不是在Firefox和Chrome
中由于
答案 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
。
因此,您可以在select的jQuery 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更改为更具体的选择器。
无论如何,更换后装载箱应按预期消失。