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

Jquery 成功后,Ajax请求将滚动到顶部。,jquery,ajax,highcharts,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); fu

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);
                }
            }
          }
        });
      }
    });
  }
get_queue_data();
setInterval(获取队列数据,10000);
函数get_queue_data(){
$.ajax({
url:“/a/order/order\U process/all\U queues\U data”,
数据类型:“json”,
async:true,
成功:功能(数据){

对于(var k=0;k因此,我的代码的问题是,图表的高度变为零,每次ajax调用后我都会转到页面的开头。因此,我所做的是创建了一个具有标准高度的容器,其中有我的高图表。这将确保高图表所在的div的高度永远不会为零。解决了!!

红色图表的raw替换DOM元素,使其高度暂时变为0。

页面上还有其他东西可以保持文档的高度吗?图表的重画替换DOM元素,使其高度暂时变为0。如果我是你,我会将容器的高度更改为图表的高度,这应该是正确的即使你正在重画图表,至少要保持页面的高度不变。@Chris我确实有一个表格要显示在高图表下面,所以将页面高度设置为图表高度是不可能的work@SzabolcsP是的,重画可能是个问题。我试着把高车放在一个div中,并将其高度设置为高图表的高度。仍然没有没用。在我回答了一条评论后,你可以让我把它写在一个答案中(一天后我就这么做了),而不是回答你自己并把它标记为已回答……我想人们只是关心你可能想读的答案