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

How exactly can you add external JS in Gantry Joomla websites?

本文关键字:添加 外部 JS 网站 Joomla Gantry      更新时间:2023-09-26

我似乎对这里的一些东西感到困惑,因为我确信我的阅读是正确的,但是有些东西就是不能正常工作。

我已经通过了一个运行在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
    });
})());

是什么导致控制台错误,为什么文件不能正确加载,即使它们看起来是正确的,并且是有序的?

这个错误似乎是在抱怨页面上没有' . clicktip '元素。那就是没有类属性为clickTip的元素?

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

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

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

,因为当前您试图在加载dom之前运行它,从而将tooltip方法附加到页面上还不存在的元素上。