1

我正在尝试在我的 rails 应用程序上放置一个简单的 jqPlot,但我无法加载它。这是我的看法:

<div id='chart1' style="height:400px;width:300px; "></div>

<script>
$(document).bind('pageinit', function() {
      var plot1 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]);
});
</script>

当我打开页面时,jQuery Mobile 微调器一直在运行,我在 JavaScript 控制台中收到此错误:

未捕获的类型错误:对象函数 (e,t){return new b.fn.init(e,t,r)} 没有方法 'jqplot'

我已将适当的 jqPlot javascript 文件添加到我的供应商/资产文件夹中,并在我的 application.js 中引用了它们,所以我认为这不是问题所在。

有趣的是(或者可能不是),如果我添加该行

jQuery.noConflict();

在 JavaScript 块的开头,然后我没有收到错误并且页面加载正常,但是没有 jqPlot.. 但是,我可以从 JavaScript 控制台引用 jqPlot。

我对网络开发很陌生,所以我可能缺少一些基本的东西。任何帮助将不胜感激!

4

1 回答 1

1

我有一个plot模块(文件jqplot.module.js),它看起来像这样:

define([
      '../js/plugins/jqplot/jquery.jqplot'
    , 'css!../js/plugins/jqplot/jquery.jqplot'
],
function () {
    var plot;
    require([
        '../js/plugins/jqplot/plugins/jqplot.barRenderer'
      , '../js/plugins/jqplot/plugins/jqplot.logAxisRenderer'
      , '../js/plugins/jqplot/plugins/jqplot.categoryAxisRenderer'
      , '../js/plugins/jqplot/plugins/jqplot.canvasAxisTickRenderer'
      , '../js/plugins/jqplot/plugins/jqplot.canvasTextRenderer'
      , '../js/plugins/jqplot/plugins/jqplot.pointLabels'
      , '../js/plugins/jqplot/plugins/jqplot.enhancedLegendRenderer'
      ],
    function () {
        plot = $.jqplot;
    });
    return plot;
  }
);

我在有问题的页面上这样称呼它:

require(['plot'],
    function () {
    // in here I have $.jqplot available
    }
);

在我的内部main.js,我正在声明通往jqplot.module

plot:'../js/plugins/jqplot/jqplot.module'

对我来说很好。

于 2013-05-13T11:41:20.583 回答