我没有找到在
中声明我自己的功能的好参考jquery.ready(function(){});
我想声明它们,因此它们位于就绪闭包的同一范围内。我不想混淆全局js命名空间,所以我不希望它们在ready闭包之外声明,因为它们只针对内部代码。
那么如何声明这样的函数......我并不是指一个自定义的jquery扩展方法/函数......只是一个常规的'ol函数,它做了一些微不足道的事情,比如:
function multiple( a, b ){
return a * b;
}
我想遵循jquery建议和函数声明语法。我可以通过声明一个类似上面的乘法函数来使它工作......但是由于某些原因我看起来不正确所以我想我只需要一些指导。
答案 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 ...)