this.setIndexByName_ = {};
this.datasetIndex_ = [];
+ this.registeredEvents_ = [];
+
// Create the containing DIV and other interactive elements
this.createInterface_();
this.mouseMoveHandler = function(e) {
dygraph.mouseMove_(e);
};
- Dygraph.addEvent(this.mouseEventElement_, 'mousemove', this.mouseMoveHandler);
+ this.addEvent(this.mouseEventElement_, 'mousemove', this.mouseMoveHandler);
this.mouseOutHandler = function(e) {
dygraph.mouseOut_(e);
};
- Dygraph.addEvent(this.mouseEventElement_, 'mouseout', this.mouseOutHandler);
+ this.addEvent(this.mouseEventElement_, 'mouseout', this.mouseOutHandler);
this.createDragInterface_();
// Update when the window is resized.
// TODO(danvk): drop frames depending on complexity of the chart.
- Dygraph.addEvent(window, 'resize', this.resizeHandler);
+ this.addEvent(window, 'resize', this.resizeHandler);
};
/**
node.removeChild(node.firstChild);
}
};
-
- // remove mouse event handlers
- Dygraph.removeEvent(this.mouseEventElement_, 'mouseout', this.mouseOutHandler);
- Dygraph.removeEvent(this.mouseEventElement_, 'mousemove', this.mouseMoveHandler);
- Dygraph.removeEvent(this.mouseEventElement_, 'mousemove', this.mouseUpHandler_);
+
+ for (var idx = 0; idx < this.registeredEvents_.length; idx++) {
+ var reg = this.registeredEvents_[idx];
+ this.removeEvent(reg.elem, reg.type, reg.fn);
+ }
+ this.registeredEvents_ = [];
+
+ // remove mouse event handlers (This may not be necessary anymore)
+ this.removeEvent(this.mouseEventElement_, 'mouseout', this.mouseOutHandler);
+ this.removeEvent(this.mouseEventElement_, 'mousemove', this.mouseMoveHandler);
+ this.removeEvent(this.mouseEventElement_, 'mousemove', this.mouseUpHandler_);
removeRecursive(this.maindiv_);
var nullOut = function(obj) {
}
};
// remove event handlers
- Dygraph.removeEvent(window,'resize',this.resizeHandler);
+ this.removeEvent(window,'resize',this.resizeHandler);
this.resizeHandler = null;
// These may not all be necessary, but it can't hurt...
nullOut(this.layout_);
boundedDates: null, // [minDate, maxDate]
boundedValues: null, // [[minValue, maxValue] ...]
- initializeMouseDown: function(event, g, context) {
+ // contextB is the same thing as this context object but renamed.
+ initializeMouseDown: function(event, g, contextB) {
// prevents mouse drags from selecting page text.
if (event.preventDefault) {
event.preventDefault(); // Firefox, Chrome, etc.
event.cancelBubble = true;
}
- context.px = Dygraph.findPosX(g.canvas_);
- context.py = Dygraph.findPosY(g.canvas_);
- context.dragStartX = g.dragGetX_(event, context);
- context.dragStartY = g.dragGetY_(event, context);
- context.cancelNextDblclick = false;
+ contextB.px = Dygraph.findPosX(g.canvas_);
+ contextB.py = Dygraph.findPosY(g.canvas_);
+ contextB.dragStartX = g.dragGetX_(event, contextB);
+ contextB.dragStartY = g.dragGetY_(event, contextB);
+ contextB.cancelNextDblclick = false;
}
};
for (var eventName in interactionModel) {
if (!interactionModel.hasOwnProperty(eventName)) continue;
- Dygraph.addEvent(this.mouseEventElement_, eventName,
+ this.addEvent(this.mouseEventElement_, eventName,
bindHandler(interactionModel[eventName]));
}
}
};
- Dygraph.addEvent(document, 'mouseup', this.mouseUpHandler_);
+ this.addEvent(document, 'mouseup', this.mouseUpHandler_);
};
/**