在选项卡激活时重新绘制多个 jqPlot

Replot multiple jqPlot on tab activate

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

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

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

如果页面上只有一个图表,这很好用。

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

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

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

谢谢。

哈,想出了办法...可能不是最漂亮的,但我在 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()