javascript - 重新初始化莫里斯图时防止滚动到顶部

标签 javascript jquery html css morris.js

我有一个莫里斯图 here .

我必须在点击 img/span 时用新数据重新填充/初始化。

这些span/img

<span class="a" onclick="changeGraph('all', this)"><img src="http://umairayub.ezyro.com/fetchPG_files/hour.png"> All</span>
<span class="a" onclick="changeGraph('hour', this)"><img src="http://umairayub.ezyro.com/fetchPG_files/hour.png"> Hours</span>
<span class="a b" onclick="changeGraph('weeks', this)"><img src="http://umairayub.ezyro.com/fetchPG_files/hour.png"> Weeks</span>

这是JS代码。

function changeGraph(type, obj) {
 // some calculation here.
 createPGhistoryGraph(finalArray) 
}

function createPGhistoryGraph(pg_data) {
    $("#pg_scrape_history").html('');
    if (typeof Morris !== "undefined" && $("#pg_history_data").html() != '[]') {
        var x = new Morris.Area({
            element: 'pg_scrape_history',
            resize: true,
            data: pg_data,
            xkey: 'date',
            ykeys: ['price'],
            labels: ['Price'],
            lineColors: ['#a0d0e0', '#3c8dbc'],
            hideHover: 'auto',
            hoverCallback: function (index, options, content, row) {
                return "<div class='morris-hover-row-label'>" + row.date + "</div><div class='morris-hover-point' style='color: #a0d0e0'><a href='" + row.link + "' target='_blank'>Price:" + row.price + "</a></div>";
            }
        });
    }
}

可以看到var x = new Morris.Area({是初始化图的部分。

问题 是当我点击其中一个按钮时整个页面向上滚动,

enter image description here

我不知道如何使用简单的 JS 或在 Morris 插件的源代码级别防止这种向上滚动。请帮忙!

最佳答案

为什么每次收到新数据时都要删除并重新创建图表?

您可以这样做,更新您的图表而不必删除 DOM 元素:

var chart = Morris.Area({ ... });

var asyncCallback = function(newData) {
  chart.setData(newData); // this will redraw the chart
};

Source: http://morrisjs.github.io/

Example using the setData api

关于javascript - 重新初始化莫里斯图时防止滚动到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42812933/

相关文章:

javascript - 错误或成功提交表单时的警报消息

javascript - 在 div 中滚动时如何在 jQuery 中使用 scrollTop?

javascript - 销毁元素和事件

javascript - 理解这段代码的方式。它是如何工作的?

jquery - 使用 Bootstrap 3 模态框确认删除

javascript - 如何在没有表单的情况下提交动态数据?

html - 在 vim 中用 HTML 标签包装部分

php - 截断其中包含 HTML 标记的字符串

javascript - ExtJS5 CellClick 事件

php - 从联系表单发送 php 电子邮件