Ajax请求将在成功后滚动到顶部。

时间:2015-07-22 14:48:34

标签: jquery ajax highcharts

get_queue_data()每10秒调用一次,每隔10秒调用一次ajax查询。问题是每次调用ajax调用后,页面都会滚动到顶部。大多数在线解决方案告诉我使用preventEventDefault。我尝试将变量传递给函数get_queue_data,并尝试调用preventEventDefault。仍然无法正常工作。我也尝试将false返回给get_queue_data函数。

  get_queue_data();
  setInterval(get_queue_data,10000);

  function get_queue_data() {
    $.ajax({
      url: '/a/order/order_process/all_queues_data',
      dataType: 'json',
      async: true,
      success: function (data) {
        for(var k=0;k<22;k++) {
          chart.series[k].addPoint([data.all_queues_data[k]['messages']]);
          var temp_series = chart.series[k];
          average_chart_data[k] = (temp_series.data[temp_series.data.length-1].y+(average_chart_data[k]*(temp_series.data.length-1)))/(temp_series.data.length);
        }

        //console.log(average_chart_data, last_value_chart_data);
        $('#queue_report').highcharts({
          chart: {
            height : 500,
            margin :50,
            width: $('#queue_data').width(),
            events: {
              load: function () {
                function create_label(message, x, y, fill_color, link) {
                  ren.label(message, x, y)
                      .attr({
                        fill: fill_color,
                        stroke: 'white',
                        'stroke-width': 2,
                        padding: 5,
                        cursor: 'pointer',
                        r: 5
                      })
                      .on('click', function () {
                        var win = window.open(link, '_blank');
                        win.focus();
                      })
                      .add(data.all_queues_data[0][0])
                      .shadow(true);
                }
            }
          }
        });
      }
    });
  }

2 个答案:

答案 0 :(得分:1)

图表的重绘取代了DOM元素,导致它的高度暂时为0。

答案 1 :(得分:-1)

所以,我的代码的问题是,图表的高度变为零,在每次ajax调用后将我带到页面的开头。所以,我做的是创建了一个标准高度的容器,在其中我有我的高图。这将确保高图表从不为零的div的高度。解决!!