如何在文档就绪的情况下引用函数?

时间:2011-09-08 17:39:51

标签: javascript jquery

我在JQuery文档就绪方法中有一些函数,我想从其他外部文件中引用,但我一直在获取一个未定义的函数。我怎样才能使这些全球性?

离。

external file 1

    $(function ()
    {
         function DoSomething()
         {    
            Do something
         }    
    });


external file 2

    $(function ()
    {

        Call DoSomething()
    )};

4 个答案:

答案 0 :(得分:4)

声明jQuery escope之外的函数。

external file 1


         function DoSomething()
         {    
            Do something
         }    


external file 2

    $(function ()
    {

        Call DoSomething()
    )};

答案 1 :(得分:2)

您可以在.ready()之外定义函数(正如其他答案所示),或者您可以利用window对象 全局范围的事实。所以,你可以让它们像这样全球化:

$(function(){
    function doSomething(){
        // …;
    }
    window.doSomething = doSomething;
});

请注意,在这种情况下,只有在 .ready()运行后才会定义 - 如果您想在另一个文件中立即使用它们(即不在事件处理程序或其他{{ 1}}功能),这不起作用。

答案 2 :(得分:1)

您可能希望在就绪块之外定义函数。这没有伤害。只有在就绪块之外执行函数才会在它准备好之前使用DOM时引起问题。

定义什么也没做(还),因此不使用DOM。所以它不需要在就绪块内;这样做只会限制你可以访问它的地方,这基本上只是一个缺点。

external file 1

function DoSomething()
     {    
        Do something
     }   

答案 3 :(得分:1)

尽可能在准备检查之外声明函数。

外部文件1

function DoSomething()
{    
    Do something
}    

外部文件2

$(function ()
{
    Call DoSomething()
)};