将javascript代码添加到joomla(view)default.php文件不起作用

时间:2014-06-23 20:16:49

标签: jquery joomla jqplot

我想在我的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>

1 个答案:

答案 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]]);
});

希望这有帮助