Javascript 动态添加highchart时出错

Javascript 动态添加highchart时出错,javascript,highcharts,winjs,Javascript,Highcharts,Winjs,我正在尝试动态添加一个高图表。我收到错误:0x800a138f-JavaScript运行时错误:预期为对象 下面是我正在使用的代码。我做错了什么 var attributelement = document.createElement("div"); WinJS.Utilities.addClass(attributelement, "itemmain"); attributelement.style.width = "400px";

我正在尝试动态添加一个高图表。我收到错误:0x800a138f-JavaScript运行时错误:预期为对象

下面是我正在使用的代码。我做错了什么

var attributelement = document.createElement("div");
            WinJS.Utilities.addClass(attributelement, "itemmain");
            attributelement.style.width = "400px";
            attributelement.style.height = "300px";

            var chartData =  {
                chart: {
                    type: 'column',
                    renderTo: attributelement
                },
                title: {
                    text: 'Monthly Average Rainfall'
                },
                subtitle: {
                    text: 'Source: WorldClimate.com'
                },
                xAxis: {
                    categories: [
                        'Jan',
                        'Feb',
                        'Mar',
                        'Apr',
                        'May',
                        'Jun',
                        'Jul',
                        'Aug',
                        'Sep',
                        'Oct',
                        'Nov',
                        'Dec'
                    ]
                },
                yAxis: {
                    min: 0,
                    title: {
                        text: 'Rainfall (mm)'
                    }
                },
                tooltip: {
                    headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
                    pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                        '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
                    footerFormat: '</table>',
                    shared: true,
                    useHTML: true
                },
                plotOptions: {
                    column: {
                        pointPadding: 0.2,
                        borderWidth: 0
                    }
                },
                series: [{
                    name: 'Tokyo',
                    data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]

                }, {
                    name: 'New York',
                    data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]

                }, {
                    name: 'London',
                    data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]

                }, {
                    name: 'Berlin',
                    data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]

                }]

            };


            //templateWinCtrl.render(currentItem.data, attributelement).done(function (itemRendered) {

            //});

            var chart = new Highcharts.Chart(chartData);
var attributeelement=document.createElement(“div”);
addClass(AttributeElement,“itemmain”);
AttributeElement.style.width=“400px”;
AttributeElement.style.height=“300px”;
var图表数据={
图表:{
键入:“列”,
renderTo:attribute元素
},
标题:{
文字:“月平均降雨量”
},
副标题:{
文本:'来源:WorldClimate.com'
},
xAxis:{
类别:[
“一月”,
二月,,
“三月”,
“四月”,
“五月”,
"六月",,
七月,,
"八月",,
"九月",,
“十月”,
十一月,,
“十二月”
]
},
亚克斯:{
分:0,,
标题:{
文字:“降雨量(毫米)”
}
},
工具提示:{
headerFormat:“{point.key}”,
pointFormat:“{series.name}:”+
“{point.y:.1f}mm”,
页脚格式:“”,
分享:是的,
useHTML:true
},
打印选项:{
专栏:{
点填充:0.2,
边框宽度:0
}
},
系列:[{
名称:"东京",,
数据:[49.9,71.5,106.4129.2,144.0176.0,135.6148.51216.4194.1,95.6,54.4]
}, {
名称:'纽约',
数据:[83.6,78.8,98.5,93.4,106.0,84.5,105.0,104.3,91.2,83.5,106.6,92.3]
}, {
名称:“伦敦”,
数据:[48.9,38.8,39.3,41.4,47.0,48.3,59.0,59.6,52.4,65.2,59.3,51.2]
}, {
名称:“柏林”,
数据:[42.4,33.2,34.5,39.7,52.6,75.5,57.4,60.4,47.6,39.1,46.8,51.1]
}]
};
//templateWinCtrl.render(currentItem.data,AttributeElement).done(函数(itemRendered){
//});
var图表=新的Highcharts.chart(图表数据);
  • 吉里贾

    • 问题是没有添加对jquery的引用。在默认页面中添加后,它就开始工作了

      尝试将静态渲染器替换为动态渲染器。让我们看看发生了什么。我认为问题就在那里。我将尝试。。。但是我想动态添加它…哪一行导致了错误?下面是SteveP的问题,templateWinCtrl是什么类型的控件?它是一个WinJS.Binding.Template吗?另一个简要说明-大多数WinJS控件都将WinJS.Binding.List对象作为其数据源。请参阅和。另一条评论:不建议在WinJS中使用JavaScript动态更改元素的宽度或高度样式值,尤其是在动态连接数据源时。CSS属性(如宽度、高度、顶部、左侧和显示)强制HTML解析器和布局引擎重新呈现和绘制HTML页面,这可能会导致严重的性能问题。