diff --git a/docs/index.html b/docs/index.html index 133c189..0ada384 100644 --- a/docs/index.html +++ b/docs/index.html @@ -301,7 +301,7 @@ chart.export(); // Unbind window-resize events - chart.unbindWindowEvents(); + chart.destroy(); diff --git a/src/js/charts/BaseChart.js b/src/js/charts/BaseChart.js index e7f6d3f..aaf72e9 100644 --- a/src/js/charts/BaseChart.js +++ b/src/js/charts/BaseChart.js @@ -7,8 +7,6 @@ import { getColor, isValidColor } from '../utils/colors'; import { runSMILAnimation } from '../utils/animation'; import { downloadFile, prepareForExport } from '../utils/export'; -let BOUND_DRAW_FN; - export default class BaseChart { constructor(parent, options) { @@ -89,18 +87,15 @@ export default class BaseChart { this.height = height - getExtraHeight(this.measures); // Bind window events - BOUND_DRAW_FN = this.boundDrawFn.bind(this); - window.addEventListener('resize', BOUND_DRAW_FN); - window.addEventListener('orientationchange', this.boundDrawFn.bind(this)); - } - - boundDrawFn() { - this.draw(true); + this.boundDrawFn = () => this.draw(true); + window.addEventListener('resize', this.boundDrawFn); + window.addEventListener('orientationchange', this.boundDrawFn); } - unbindWindowEvents() { - window.removeEventListener('resize', BOUND_DRAW_FN); - window.removeEventListener('orientationchange', this.boundDrawFn.bind(this)); + destroy() { + // Unbind window events + window.removeEventListener('resize', this.boundDrawFn); + window.removeEventListener('orientationchange', this.boundDrawFn); } // Has to be called manually