Joomla:从第一个外部javascript文件访问变量的第二个外部javascript文件

时间:2018-02-02 12:28:41

标签: javascript jquery joomla external

我希望标题不会令人困惑。我有以下情况。

请注意,这是与 Joomla 相关的问题。

我有两个外部JavaScript文件: accordion.js initialize.js ,我将其包含在模板的 index.php 文件中

accordion.js 看起来像这样:

const int result = system("sudo /usr/local/bin/myMountScript.sh <options>");
//Error handling on result follows below

然而这不起作用,因为JQuery没有冲突。必须做以下事情:

function Accordion ( options ) {
    /* code here */
}
Accordion.prototype.someFunction = function ( params ) {
      /* code here that uses JQuery */
}

它确实有效。如果我在该块中输入警报('Hello'),它就可以工作。

现在我有一个外部文件 initialize.js ,它也包含在模板中。

此文件需要能够访问(并实例化)Accordion类。所以它看起来像这样:

(function($) {

    function Accordion ( options ) {
        /* code here */
    }
    Accordion.prototype.someFunction = function ( params ) {
       /* code here that uses JQuery */
    }

})(JQuery)

在这里,Javascript说它不知道“手风琴”是什么。

但是,如果我将这段代码移到accordion.js文件中,它将会起作用。

(function($) {
     $(document).ready(function() {
        var accordion =  new Accordion({});
        /* other code here that uses JQuery */
     });
}

这很有效。

我相信我明白为什么它不起作用。这与范围有关,对吧?这两个文件基本上是两个不能互相访问的不同(en)封闭块。

我现在的问题是,如何让他们进行沟通?如何在 accordion.js 全局中创建脚本,以便 initialize.js 可以访问其变量和函数?

PS:让我们假装没有其他办法,只是将脚本及其初始化分成两个不同的文件。您包含 accordion.js 脚本,并初始化 initialize.js 。我知道可能有更好的方法来做到这一点,但我不允许更改HTML代码,以使初始化更通用/全局,并且只使用一个文件。

0 个答案:

没有答案