1

有谁知道是否可以使用 Jquery.clone(); Flot 图表上的功能?

var $clonedChart = $this.find('.chart-area').clone();
$('#details').append($clonedChart);

基本上,当用户查看“详细信息视图”时,我只想克隆一个图表并在模式窗口中使用它。我可以看到画布,但不幸的是,画布的内容没有被渲染。有没有办法让他们出现?我假设我还需要做一些花哨的深度克隆来获取插件,然后重新渲染图表?我希望避免这种情况,但不确定是否有可能......

谢谢!

4

2 回答 2

1

clone()不会复制所有事件处理程序,您最好将调用 $.flot方法的代码打包并在需要在其他地方显示时再次调用它。

于 2012-04-24T17:20:28.593 回答
0

如果图表不是交互式的,你应该只克隆画布而不用担心 Flot 插件。

function cloneCanvas(oldCanvas) {

    //create a new canvas
    var newCanvas = document.createElement('canvas');
    var context = newCanvas.getContext('2d');

    //apply the old canvas to the new one
    context.drawImage(oldCanvas, 0, 0);

    //return the new canvas
    return newCanvas;
}

从另一个 SO 问题复制的代码

于 2012-04-24T17:29:30.440 回答