From 23e6849ffb9bf04f6bf3170e2da2fdef2d643557 Mon Sep 17 00:00:00 2001 From: Russ Nelson Date: Mon, 23 Feb 2015 17:00:24 -0500 Subject: [PATCH] delay synchronizing until all the dygraphs are ready. --- extras/synchronizer.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/extras/synchronizer.js b/extras/synchronizer.js index f39209b..12d8043 100644 --- a/extras/synchronizer.js +++ b/extras/synchronizer.js @@ -100,16 +100,24 @@ Dygraph.synchronize = function(/* dygraphs..., opts */) { throw 'Invalid invocation of Dygraph.synchronize(). ' + 'Need two or more dygraphs to synchronize.'; } + + var readycount = dygraphs.length; + for (var i = 0; i < dygraphs.length; i++) { + var g = dygraphs[i]; + g.ready( function() { + if (--readycount == 0) { + // Listen for draw, highlight, unhighlight callbacks. + if (opts.zoom) { + attachZoomHandlers(dygraphs, opts, prevCallbacks); + } - // Listen for draw, highlight, unhighlight callbacks. - if (opts.zoom) { - attachZoomHandlers(dygraphs, opts, prevCallbacks); - } - - if (opts.selection) { - attachSelectionHandlers(dygraphs, prevCallbacks); + if (opts.selection) { + attachSelectionHandlers(dygraphs, prevCallbacks); + } + } + }); } - + return { detach: function() { for (var i = 0; i < dygraphs.length; i++) { -- 2.7.4