1

请看以下示例:

http://www.jqplot.com/deploy/dist/examples/hiddenPlotsInTabs.html

在第一个示例中,通过捕获“tabshow”事件并查找选择了哪个选项卡来绘制隐藏图:

$('#tabs').bind('tabsshow', function (event, ui) {
    if (ui.index === 1 && plot1._drawCount === 0) {
        plot1.replot();
    } else if (ui.index === 2 && plot2._drawCount === 0) {
        plot2.replot();
    }
});

这很好用,但是如果您添加了更多选项卡并将绘图移动到其他选项卡,则必须手动更新硬编码的“ui.index”值,我想在我的项目中避免这种情况。

有人知道以编程方式查找您的情节存在于哪个选项卡下的好方法吗?我想以这样一种方式进行编码,无论您有多少标签以及放置绘图的位置都无关紧要。

4

1 回答 1

1

您必须通过以下方式处理它:

  1. 从某处获取您想要查找的图表 ID。
  2. 使用 jQuery 选择图表。
  3. 使用方法找到它的父级parent()--- 这是包含它的选项卡。
  4. 使用attr('id')父级获取其 id。

这就是我在此处可用的 jsfiddle 示例中展示它的方式。

编辑

据我了解,您想获取所选选项卡的索引,实际上是 ui.index。由于我在 中找不到现成的方法jQuery UI,这就是我实现它的方法(此代码也添加到之前的 jsfiddle 示例中):

    var tabIndex = -1;
    $("#tabs ul li").each(function(index){
        if('#'+tabId === $(this).find("a").attr('href')){
            tabIndex = index;
            return false;
        }
    });
于 2012-05-02T11:29:10.533 回答