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可以更改为更具体的选择器。
无论如何,更换后装载箱应按预期消失。