重新标记选项卡上的多个jqPlot激活

时间:2015-02-17 19:21:11

标签: jquery tabs jqplot

我有一个带有标签的动态页面,我目前正在向页面添加2个jqPlot项目,但情况可能并非总是如此。它可能是一个,三个,四个或更多...

如果选项卡未激活,则jqPlot不会立即呈现。样本说要解决这个问题...运行选项卡激活...

    $('#tabs').tabs({ activate : function(event, ui) {
        plot47.replot();
    }});

如果页面上只有一个图表,这样可以正常工作。

如果页面上有两个图表,则运行2批激活只运行最后一个。第一个被忽略。

不幸的是,我无法知道创建页面时有多少个图表,这意味着我无法将所有的replot()调用放在一个激活中。

那么,如何将多个图添加到一个激活中,或者如何运行多个激活?

谢谢。

1 个答案:

答案 0 :(得分:0)

哈,找到了办法做到这一点......可能不是最漂亮的,但我在jsfiddle上做的测试似乎有用......

var fns = [];

$("#tabs").tabs({
    activate: function (event, ui) {
        var active = $('#tabs').tabs('option', 'active');
        $("#tabid").html('the tab id is ' + $("#tabs ul>li a").eq(active).attr("href"));

        for (i = 0; i < fns.length; i++)
        {
            eval(fns[i]);
        }
    }
}

);

function first()
{
    alert('1');
}

function second()
{
    alert('2');
}

fns.push("first()");
fns.push("second()");

我还是javascript的新手,但至少这可以解决我的问题。我将在每个图形中创建函数,然后将函数名称推入数组,然后评估函数名称。该函数只需调用replot()