0

我使用在互联网上找到的幻灯片系统,并尝试对其进行一些调整。那里有两个 js 文件,每个文件都由如下函数组成:

(function($) {
    $.file1 = function(data, vData) 
    {
       //function aaa
       //function bbb
       //function ccc
    }
})(jQuery);

(function($) {
    $.file2 = function(data, vData) 
    {
       //function eee
       //function fff
       //function gig
    }
})(jQuery);

如何从函数 bbb 内部触发函数 eee?

我从 bbb 函数内部尝试了这些,但没有奏效:

eee();
$.file2.eee();

我不是要返回一个变量,我只需要触发函数。

谢谢您的帮助。

4

3 回答 3

1

您需要将函数公开给其他范围:

(function($) {
    $.file1 = function(data, vData) {
       //function aaa
       //function bbb
       //function ccc
       return {
           aaa: aaa,
           bbb: bbb,
           ccc: ccc
       };
    }
})(jQuery);

$.file1().aaa();
$.file1().bbb();
$.file1().ccc();

请注意,这是定义函数的一种非常尴尬的模式。尚不完全清楚您要使用此模式完成什么。使用IIFE可能会更好:

var thing = (function($) {
    //function aaa
    //function bbb
    //function ccc

    return {
        aaa: aaa,
        bbb: bbb,
        ccc: ccc
    };
})(jQuery);

thing.aaa();
thing.bbb();
thing.ccc();
于 2012-08-15T15:26:13.160 回答
1

我要感谢大家的帮助。

我所做的是:在调用函数 bbb(在文件 2 中)中,我添加了以下内容:

$.file1.triggerEee();

在文件 1 ($.file1) 的主函数中,我添加了这个:

$.file1.triggerEee=function(){eee();};

它成功了。

非常感谢。

于 2012-08-15T16:10:17.143 回答
0

在这两个函数 jquery 调用中只引用方法,不要在那里实现它。如果您在其他地方实现它,它将非常容易参考。

于 2012-08-15T15:24:13.193 回答