Javascript Highchart ID不使用新变量更新
我试着在我的网站上用海图生成一朵风玫瑰。它应该显示带有箭头的方向和仪表本身的速度 我有以下代码来生成图表:Javascript Highchart ID不使用新变量更新,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我试着在我的网站上用海图生成一朵风玫瑰。它应该显示带有箭头的方向和仪表本身的速度 我有以下代码来生成图表: $(document).ready(function() { var chart = new Highcharts.Chart({ \\ some other parameters not relating to question series: [{ data: [{ id: 'wnddr', y: win
$(document).ready(function() {
var chart = new Highcharts.Chart({
\\ some other parameters not relating to question
series: [{
data: [{
id: 'wnddr',
y: winddir,
dial: {
radius: '90%',
baseWidth: 3,
baseLength: '95%',
rearLength: 0
}
}],
dataLabels: {
enabled: true,
formatter : function(){
return windspd + ' km/u';
}
}
}]
},
function (chart){
setInterval(function() {
$.ajax({
type: "POST",
url: "example.php",
dataType: "JSON",
cahce: "false",
success: function(data){
windspd = data.query.results.channel.wind.speed;
winddir = data.query.results.channel.wind.direction;
windchill = data.query.results.channel.wind.chill;
hum = data.query.results.channel.atmosphere.humidity;
druk = data.query.results.channel.atmosphere.pressure;
ss = data.query.results.channel.astronomy.sunset;
sr = data.query.results.channel.astronomy.sunrise;
temp = data.query.results.channel.item.condition.temp;
des = data.query.results.channel.item.forecast[0].code;
var point = chart.series[0].points[0];
point.update(winddir);
// alert(winddir);
}
});
$('.update').html("<img src=http://l.yimg.com/a/i/us/we/52/" +des+ ".gif />");
}, 5000);
});
});
$(文档).ready(函数(){
var图表=新的Highcharts.图表({
\\与问题无关的其他一些参数
系列:[{
数据:[{
id:'wnddr',
y:winddir,
拨号:{
半径:“90%”,
底宽:3,
baseLength:'95%',
长度:0
}
}],
数据标签:{
启用:对,
格式化程序:函数(){
返回windspd+‘km/u’;
}
}
}]
},
功能(图表){
setInterval(函数(){
$.ajax({
类型:“POST”,
url:“example.php”,
数据类型:“JSON”,
cahce:“假”,
成功:功能(数据){
windspd=data.query.results.channel.wind.speed;
winddir=data.query.results.channel.wind.direction;
windchill=data.query.results.channel.wind.chill;
hum=data.query.results.channel.atmosphere.湿度;
druk=data.query.results.channel.atmosphere.pressure;
ss=data.query.results.channel.astronomy.sunset;
sr=data.query.results.channel.astronomy.sunrise;
temp=data.query.results.channel.item.condition.temp;
des=data.query.results.channel.item.forecast[0]。代码;
var point=chart.series[0]。points[0];
更新点(winddir);
//警报(winddir);
}
});
$('.update').html(“”);
}, 5000);
});
});
使用wnddr.update(winddir)代码>我试图更新图表中的winddir变量。然而,我不能让它工作。此外,该警报不会弹出,因此可能我的代码在此之前被卡住。如果我将警报上方的两行注释掉,警报将起作用。速度变量也是如此。这里的问题是它没有id属性。
我修改了源代码作为基础。手动给“y”一个值会生成一个有效且正确的量表。winddir的固定值也是如此。var-wnddr=chart.get(wnddr)代码>--您正在尝试在此处获取null,因为变量未设置。。。?另外,检查控制台并告诉其中的内容可能会有所帮助。看起来getData6
无法获取图表变量。我修改了OP中的代码。至少现在风速正常,但风向仍然没有改变……经过一天的努力,我发现我不得不使用chart.series[0]。data[0]。update(winddir)代码>是否有一种方法可以在页面加载后立即执行此脚本?是的,有一种方法。我想说有两种方法:)就个人而言,我会创建一个回调函数。然后这样做:function(chart){updateChart(chart);setInterval(function(){updateChart(chart);},5000);})代码>和updateChart(图表)
将是创建的函数。