2013-06-05 101 views
0

我收到此错误:访问方法需要JS

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

回答

0

简单地说,因为它是annonymous函数内部闭合功能,你不能访问功能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);