您如何在Gantry Joomla网站中添加外部JS?

时间:2015-07-22 08:28:23

标签: javascript jquery joomla

我似乎对这里的某些事情感到困惑,因为我确信我读得正确,但有些事情是行不通的。

我已经通过了在Joomla上运行的基于Gantry的网站,并且被要求进行一些更改。其中之一是通过包含一个JS文件,然后对它进行简单的调用。

通过阅读Gantry文档,我将通过以下方式将其添加到Gantry模板的index.php文件中:

$gantry->addScript('jquery.atooltip.min.js');
$gantry->addScript('init.js');

逻辑上,这似乎首先加载插件文件,然后直接加载init文件,其中包含对插件的调用。在查看来源时,这已得到确认。它们在<script>标记中正确显示在头部。

但是,我收到了控制台错误:

Uncaught TypeError: Cannot read property 'aToolTip' of null
(anonymous function) @ init.js:3
(anonymous function) @ init.js:7

我的init.js文件的内容是这样的:

((function(){
    // on click tooltip with custom content  
    $('a.clickTip').aToolTip({  
        clickIt: true,
        fixed: true
    });
})());

导致控制台错误的原因是什么,为什么文件加载不正确,即使它们似乎正确地被正确拾取,并按顺序?

2 个答案:

答案 0 :(得分:0)

似乎错误是抱怨页面上没有'a.clickTip'元素。那不是具有clickTip类属性的元素吗?

你能在页面中看到该类的锚元素吗?

答案 1 :(得分:0)

我不知道那些特定的插件,但根据报告的错误,我认为你需要像这样更改你的init.js:

jQuery("document").ready(function (){
    // on click tooltip with custom content  
    $('a.clickTip').aToolTip({  
        clickIt: true,
        fixed: true
    });
});

因为目前您正在尝试在加载dom之前运行它,因此将aToolTip方法附加到页面上不存在的元素。