Ajax调用jqplot不适用于jsfiddle

时间:2014-07-21 08:08:00

标签: jquery jqplot jsfiddle

var jsonData = {
    "a": 10,
     "b": 20
};

var ajaxDataRenderer = function (url, plot, options) {
    var ret = null;
    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: jsonurl,
        data: {
            json: JSON.stringify(jsonData)
        },
        success: function (data) {
             $('#ajax').append(data.a).append( ['<br/>',data.b].join('') );
            ret = data;
        }
    });
    return ret;
  };

    var jsonurl = "/echo/json/";

    var plot1 = $.jqplot('bar_chart', jsonurl, {
        title: "AJAX JSON Data Renderer",
        dataRenderer: ajaxDataRenderer,
        dataRendererOptions: {
      unusedOptionalUrl: jsonurl
    }
    });

我在jsfiddle中尝试过上面的代码。我收到ajax请求的响应,但jqplot不工作..请在此建议。以下div id在jsfiddle中定义

<div id="bar_chart"></div>

<h1>Mocking AJAX on jsfiddle</h1>

<div id="ajax"></div>

1 个答案:

答案 0 :(得分:1)

Ajax渲染器正在等待数组以绘制绘图。你给它一个对象。 您必须将JS对象转换为数组:

var array = $.map(data, function(value, index) {
  return [value];
});
return [array];

请查看工作小提琴here