require js中的访问方法

时间:2013-06-05 00:24:49

标签: javascript jquery requirejs

我收到此错误:

ReferenceError: overlay is not defined
overlay();

我需要访问jquery.vegas中requireJS内部的方法。我怎么能这样做?

require(["jquery"], function($) {
    require(["files/jquery.vegas"], function(jQuery) {
        set_overlay = true;
        ...

        function overlay() {
            $.vegas('overlay', {
                src : 'overlays/10.png'
            });
        }
    });
});

jquery.vegas

(function($) {
    function loading() {
        if (set_overlay == true) {
            overlay();
        }
    }

})(jQuery); 

1 个答案:

答案 0 :(得分:0)

简单来说,你不能访问函数overlay,因为它是匿名函数中的闭包函数。

如果以上代码在您的控制之下,那么我建议您将函数overlay移动到这两种方法之间的共享上下文

function overlay() {
    $.vegas('overlay', {
        src : 'overlays/10.png'
    });
}
require(["jquery"], function($) {
    require(["files/jquery.vegas"], function(jQuery) {
        set_overlay = true;
        ...

    });
});

(function($) {
    function loading() {
        if (set_overlay == true) {
            overlay();
        }
    }

})(jQuery);