Загрузка простого 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'
У меня отлично работает.