在jquery ready函数中声明函数的最佳实践

时间:2009-02-25 21:29:55

标签: javascript jquery

我没有找到在

中声明我自己的功能的好参考
jquery.ready(function(){});

我想声明它们,因此它们位于就绪闭包的同一范围内。我不想混淆全局js命名空间,所以我不希望它们在ready闭包之外声明,因为它们只针对内部代码。

那么如何声明这样的函数......我并不是指一个自定义的jquery扩展方法/函数......只是一个常规的'ol函数,它做了一些微不足道的事情,比如:

function multiple( a, b ){ 
    return a * b; 
}

我想遵循jquery建议和函数声明语法。我可以通过声明一个类似上面的乘法函数来使它工作......但是由于某些原因我看起来不正确所以我想我只需要一些指导。

3 个答案:

答案 0 :(得分:54)

我相信你可以在ready()闭包中声明函数,但是在这里你可以更明确地了解本地作用域:

jQuery.ready(function() {

     var myFunc = function() {

           // do some stuff here

     };

     myFunc();


});

答案 1 :(得分:9)

这可能听起来很简单,但你只是......宣布这个功能。 Javascript允许函数具有内部函数。

$(document).ready( function() {
   alert("hello! document is ready!");

   function multiply(a, b) {
       return a * b;
   }

   alert("3 times 5 is " + multiply(3, 5));
});

答案 2 :(得分:7)

我有一个StartUp功能,我将它用作下面的打印:

function StartUp(runnable)
{
    $(document).ready(runnable.run);
}

var ExternalLinks =
{
    run: function()
    {
        $('a[rel="external"]').bind('click', ExternalLinks.click);
    },
    click: function(event)
    {
        open(this.href);
        return false;
    }
}
StartUp(ExternalLinks);

var ConfirmLinks =
{
    run: function()
    {
        $('a.confirm').bind('click', ConfirmLinks.click);
    },
    click: function(event)
    {
        if (!confirm(this.title)) {
            return false;
        }
    }
}
StartUp(ConfirmLinks);

我的网站是模块化的,所以每个模块都有N个动作,每个动作都有一个.js文件,所以我只需编写函数并用StartUp调用它(... functionName ...)