我想在我的Joomla(3.3)视图文件中使用(jquery)jqplot - default.php,请参阅下面的代码。
但是,调用此文件时,首页不显示图表,并且控制台在$(document).ready()函数行显示错误'Uncaught typeError:Undefined is not function'。
我怀疑我在default.php文件(?)中以错误的方式嵌入了$(document).ready()函数,但我不知道如何解决这个问题。有什么建议吗?
Joomla default.php查看文件:
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
$document = JFactory::getDocument();
//add jqplot libraries
//JHtml::_('jquery.framework); //I tried this before - same console error
JHtml::_('jquery.framework', false);
JHTML::script('jquery.jqplot.min.js');
$document->addStyleSheet('media/system/js/jquery.jqplot.min.css');
JHTML::script('jquery.jqplot.min.css');
JHTML::script('jqplot.barRenderer.min.js');
JHTML::script('jqplot.categoryAxisRenderer.min.js');
JHTML::script('jqplot.pointLabels.min.js');
JHTML::script('jqplot.enhancedLegendRenderer.js');
JHTML::script('weqlib.js');
?>
<head>
<script type="text/javascript">
$(document).ready(function(){ //here the error console displays an error
var plot1 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]); //copied from example at http://www.jqplot.com/tests/line-charts.php
}); //$(document).ready
</script>
</head>
<!--<h1><?php echo $this->msg; ?></h1>-->
<body>
<div id="chart1" style="width:600px; height:250px;"> </div>
</body>
答案 0 :(得分:0)
定义文件路径时,应始终以JUri::root
开头,这是Joomla网站的根目录。例如:
JHtml::_('script', JUri::root() . 'templates/TEMPLATE_NAME/weqlib.js' );
当然,请更改文件所在位置的路径。
在旁注中,您可以使用以下内容导入样式表,而不是使用$document->addStylesheet()
:
JHtml::_('stylesheet', JUri::root() . 'media/system/js/jquery.jqplot.min.css' );
至于你的jQuery函数,在如上所述正确导入js文件之后,你的代码应该可以工作,但是如果没有,请尝试通过更改这个来在noConflict模式下运行jQuery:
JHtml::_('jquery.framework', false);
到此:
JHtml::_('jquery.framework');
完成后,将自定义脚本更改为使用jQuery
作为别名的自定义脚本:
jQuery(document).ready(function() {
var plot1 = jQuery.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]);
});
希望这有帮助