diff --git a/lib/hawat/blueprints/design_bs3/templates/_macros_chart.html b/lib/hawat/blueprints/design_bs3/templates/_macros_chart.html
index db855675bc5117831bdb4ecc5b044f02c0083fa0..68219b7c1e3246153d661ca73d0c65265a734c60 100644
--- a/lib/hawat/blueprints/design_bs3/templates/_macros_chart.html
+++ b/lib/hawat/blueprints/design_bs3/templates/_macros_chart.html
@@ -439,6 +439,8 @@
 {%- macro _snippet_ecbks_timeline(chart_id, cfg_params, with_full = False) %}
                         // Enable necessary event callbacks to appropriate DOM elements.
                         $(document).ready(function () {
+                            // unbind click event listener
+                            $("#{{ chart_id }}_toggle").off('click');
                             // Event handler for toggling dataset table.
                             $("#{{ chart_id }}_toggle").click(function () {
                                 $("#{{ chart_id }}_content").toggleClass("col-md-12 col-md-6");
diff --git a/lib/hawat/static/js/hawat-charts.js b/lib/hawat/static/js/hawat-charts.js
index 91ced1e36f9d51e151498d26929c5df66523f2ff..9c74d19295cd41bb93dc5de6dac471c8a8fe4827 100644
--- a/lib/hawat/static/js/hawat-charts.js
+++ b/lib/hawat/static/js/hawat-charts.js
@@ -562,6 +562,9 @@ function render_table_timeline_multi(tid, table_columns, table_data, data_stats)
     var value_formatter = table_value_formatter(GLOBALIZER.numberFormatter());
     var date_formatter = table_value_formatter(GLOBALIZER.dateFormatter());
 
+    // remove the existing table
+    d3.select(`#${tid} > table`).remove();
+
 	var table = d3.select('#' + tid).append('table')
 	var thead = table.append('thead')
 	var	tbody = table.append('tbody');
@@ -722,6 +725,9 @@ function render_table_dict(tid, table_columns, table_data, data_stats, action_li
         })
     );
 
+    // remove the existing table
+    d3.select(`#${tid} > table`).remove();
+
     var table = d3.select('#' + tid).append('table')
     var thead = table.append('thead')
     var tbody = table.append('tbody');
@@ -899,6 +905,9 @@ function render_table_mdict(tid, table_columns, table_data, data_stats, total =
         })
     );
 
+    // remove the existing table
+    d3.select(`#${tid} > table`).remove();
+
     var table = d3.select('#' + tid).append('table')
     var thead = table.append('thead')
     var tbody = table.append('tbody');