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);
}
}
}
});
}
});
}
答案 0 :(得分:1)
图表的重绘取代了DOM元素,导致它的高度暂时为0。
答案 1 :(得分:-1)
所以,我的代码的问题是,图表的高度变为零,在每次ajax调用后将我带到页面的开头。所以,我做的是创建了一个标准高度的容器,在其中我有我的高图。这将确保高图表从不为零的div的高度。解决!!