在AJAX成功函数中调用人力车JS轴渲染问题

Rickshaw JS axis render issue when called within AJAX success function

本文关键字:JS 问题 人力车 调用 AJAX 成功 函数      更新时间:2023-09-26

我正在使用Rickshaw JS创建一个图形。为了做到这一点,我创建了一个函数,当调用渲染图形。我面临的问题是在脚本标签内调用时,该函数呈现一切正常,如我所料。但是,在AJAX调用的成功函数中调用时,不会显示轴。

相关代码片段:

<script>
function ProbabilityPlot(a) {
    var graph = new Rickshaw.Graph({
       ...
    });
    graph.render();
    var xAxis = new Rickshaw.Graph.Axis.X({
       ...
    });
    xAxis.render();
    var yAxis = new Rickshaw.Graph.Axis.Y({
       ...
    });
    yAxis.render();
};
$.ajax({
    url: plotURl,
    dataType: 'json',
    cache: false,
    success: function(data) {
        ProbabilityPlot([ {{plot_data}} ]); <-- axes do NOT work
    }
});
ProbabilityPlot([ {{plot_data}} ]); <-- eveything works perfectly
</script>

我可以验证在这两种情况下传递给函数的参数是相同的

不确定如何修复或潜在问题是什么,但修复(至少现在)是将脚本移动到html的头部。

<script src="{% static "Home/js/vendor/jquery.js" %}"></script>
<script src="http://code.shutterstock.com/rickshaw/vendor/d3.v3.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.5.1/rickshaw.min.js"></script>