2012-04-24 4 views
1

Кто-нибудь знает, можно ли использовать Jquery.clone(); функция на графике флота?Cloning JQuery Flot chart

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

В принципе, я просто хочу, чтобы клонировать карту и использовать ее в модальном окне, когда пользователь смотрит на «детальном». Я вижу холст, но, к сожалению, содержимое холста не отображается. Есть ли способ заставить их появиться? Я предполагаю, что мне понадобится сделать какой-то причудливый глубокий клон, чтобы захватить плагин, а затем перерисовать график? Я надеялся избежать этого, но не уверен, что это возможно ...

Спасибо!

ответ

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; 
} 

Code copied from another SO question

+0

Я просто нужен способ, чтобы захватить всю диаграмму и вставляет его в другой точке зрения. Я не хочу переписывать все это ... – gabaum10

+0

Хорошо, я не мог придумать лучшее решение, поэтому я закончил просто перерисовывать графики в новых div и добавлял их. Я еще не собираюсь закрывать это, у кого-то может быть хорошее решение. Если нет, я дам вам оценки за это. Благодаря! – gabaum10

+0

Надеюсь, вы найдете более элегантное решение, но некоторые тесты, которые я сделал - о клонировании холста, - не удалось. Вышеупомянутое может быть вашим единственным вариантом. – lalibi

1

clone() не собирается реплицировать все обработчики событий, вам лучше упаковать свой код, который вызывает метод $.flot, и вызывать его снова, когда вам нужно отобразить его где-то еще.

Смежные вопросы