我在JQuery文档就绪方法中有一些函数,我想从其他外部文件中引用,但我一直在获取一个未定义的函数。我怎样才能使这些全球性?
离。
external file 1
$(function ()
{
function DoSomething()
{
Do something
}
});
external file 2
$(function ()
{
Call DoSomething()
)};
答案 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()
)};