来自addEventListener的Javascript返回变量

来自addEventListener的Javascript返回变量,javascript,jquery,json,Javascript,Jquery,Json,这是关于。这是我问过你的。谢谢你的解决方案,我可以解决这个问题。但是现在,我已经将keyChartData声明为全局变量,现在我根据所选选项加载JSON数据并将其存储到keyChartData,我需要在AmCharts.ready函数中捕获它来绘制图形。在函数外,keyChartdata的值为空,如何克服这一障碍。请帮忙。keyChartdata不是处理程序外部的blacnk。当ready调用时,它是空的 尝试添加console.log1;更改handler和console.log2;准备好处理

这是关于。这是我问过你的。谢谢你的解决方案,我可以解决这个问题。但是现在,我已经将keyChartData声明为全局变量,现在我根据所选选项加载JSON数据并将其存储到keyChartData,我需要在AmCharts.ready函数中捕获它来绘制图形。在函数外,keyChartdata的值为空,如何克服这一障碍。请帮忙。

keyChartdata不是处理程序外部的blacnk。当ready调用时,它是空的

尝试添加console.log1;更改handler和console.log2;准备好处理程序。也许你会看到2,然后是1。您必须在退出更改处理程序之前启动ready,或者只需调用另一个函数即可创建AmCharts.AmSerialChart并将keyChartData复制到chart.dataProvider。

当keyChartData发生更改时,是否有方法重新加载AmCharts?
    var jobj = [];
    var keyChartData = null;
    var chartData = [{
        "name": "John",
        "points": 35654,
        "color": "#7F8DA9",
        "bullet": "0.gif"
    }, {
        "name": "Damon",
        "points": 65456,
        "color": "#FEC514",
        "bullet": "1.gif"
    }, {
        "name": "Patrick",
        "points": 45724,
        "color": "#DB4C3C",
        "bullet": "2.gif"
    }, {
        "name": "Mark",
        "points": 13654,
        "color": "#DAF0FD",
        "bullet": "3.gif"
    } {
        "name": "Mark",
        "points": 43244,
        "color": "#DAF0FD",
        "bullet": "3.gif"
    } {
        "name": "Patrick",
        "points": 64643,
        "color": "#DB4C3C",
        "bullet": "2.gif"
    }, {
        "name": "Patrick",
        "points": 73724,
        "color": "#DB4C3C",
        "bullet": "2.gif"
    }, {
        "name": "John",
        "points": 65672,
        "color": "#DB4C3C",
        "bullet": "2.gif"
    }, ];

    var select = document.getElementById("selector");
    var lookup = {};
    var len = chartData.length;


    for (var i = 0; i < len; i++) {
        var item = chartData[i];
        var name = item.name;
        var option = document.createElement("option");
        option.value = i;
        option.textContent = name;
        select.appendChild(option);
    };


    select.addEventListener('change', function () {
        var selValue = select.options[select.selectedIndex].name;
        for (var i = 0; i < len; i++) {
         var item = chartData[i];

          var name = item.name;
          //alert("selValue: "+selValue+" Key: " +key);

        if(selValue === name){
        jobj.push(JSON.stringify(chartData[i]));
       } 
      } 
       keyChartData = JSON.parse(JSON.stringify(jobj));

    })

alert(keyChartData);

AmCharts.ready(function () {

     // SERIAL CHART    
    chart = new AmCharts.AmSerialChart();
    chart.pathToImages = "http://www.amcharts.com/lib/3/images/";
    chart.dataProvider = keyChartData;
..........
}