使用jQuery Mobile和Rails加载简单的jqPlot

时间:2013-05-11 17:57:59

标签: ruby-on-rails jquery-mobile jqplot

我正在尝试在我的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控制台中收到此错误:

  

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

我已将相应的jqPlot javascript文件添加到我的vendor / assets文件夹并在我的application.js中引用它们,所以我认为这不是问题所在。

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

jQuery.noConflict();

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

我对网络开发很陌生,所以我可能会遗漏一些基本的东西......任何帮助都会非常感激!

1 个答案:

答案 0 :(得分: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'

对我来说很好。