0

我收到此错误:

ReferenceError: overlay is not defined
overlay();

我需要访问 requireJS 中的一个方法jquery.vegas。我怎样才能做到这一点?

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); 
4

1 回答 1

0

简而言之,您无法访问该函数overlay,因为它是匿名函数内部的闭包函数。

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

IE

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); 
于 2013-06-05T00:50:01.683 回答