在jquery选项卡中加载flot图表解决方法并不能完全解决问题

在jquery选项卡中加载flot图表存在已知问题,该选项卡不是此处的初始可见选项卡:

这是在这里问的:
http://osdir.com/ml/jQuery/2009-06/msg02284.html

并回答了这个解决方案:

.tabs-hide {
 /*display: none;*/
  position: absolute;
 left: -10000px;
 }

解决方案仍存在一些问题.

假设flot图表所在的选项卡名称称为#tab-1. jquery选项卡将其放在URL字符串中,这样在加载时最初会起作用,但是如果您尝试向链接中的#tab-1(或URL中的任何选项卡名称)发送URL,则图表将不会可见.有没有人看到一个总是有效的解决方案,包括选项卡也可能在网址中的情况.

解决方法

对我来说,图表在使用#tab-1 URL直接访问特定选项卡时有效,但在图表选项卡最初未激活时则无效.

我通过将图表生成调用包装到选项卡激活(1)来解决了这个问题:

$('#tabs_container').bind('tabsshow',function(event,ui) {
  if (ui.panel.id == "tab-1") {
    $.plot(...)
  }
})

其中’#tabs-container’和’tab-1’被替换为适当的ID. ‘tabsshow’是要绑定的事件的名称.

唯一的缺点是每次显示选项卡时都会再次绘制图表.对我来说,这不是一个大问题,人们可能会通过例如使用一些标志变量只调用$.plot()一次.

(1):jQuery-ui docs的第二个提示

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...