Загрузка простого jqPlot с помощью jQuery Mobile и Rails

Я пытаюсь поместить простой jqPlot в мое приложение rails, но не могу загрузить его... вот что, на мой взгляд:

<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:

Uncaught TypeError: Функция объекта (e,t){return new b.fn.init(e,t,r)} не имеет метода 'jqplot'

Я добавил соответствующие файлы javascript jqPlot в свою папку vendor/assets и сослался на них в своем application.js, так что я не думаю, что это проблема.

Интересно (а может и нет), если я добавлю строку

jQuery.noConflict();

в начале блока JavaScript я не получаю ошибки, и страница загружается нормально, но без jqPlot... однако я могу ссылаться на jqPlot из консоли JavaScript.

Я довольно новичок в веб-разработке, поэтому, возможно, мне не хватает чего-то простого... любая помощь будет высоко ценится!

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'

У меня отлично работает.

Другие вопросы по тегам