2012-08-05 111 views
3

我想提供帮助函数,允许复杂的基于jQuery的用户界面的各种组件隐藏或显示加载div(用于从页面的各个部分启动Ajax调用时) 。jQuery文档就绪和功能范围

为此,我最初写了这样的代码:

<script type="text/javascript"> 
$(function() 
{ 
    var loadingControl = $("#loading"); 

    function showLoading() { 
     loadingControl.show(); 
    } 
} 
</script> 

不过,我很快就意识到,showLoading仅在范围特定文件准备内。

在从

https://stackoverflow.com/a/1055799/141172

的意见,我宣布showLoading在全球范围内是这样的:

<script type="text/javascript"> 
var showLoading; 
$(function() 
{ 
    var loadingControl = $("#loading"); 

    function showLoading() { 
     loadingControl.show(); 
    } 
} 
</script> 

但是,我仍然觉得showLoading不提供文件准备好稍后执行的块。该错误是

属性的值 'showLoading' 为空或不确定的,而不是一个函数对象

这种行为可以在这里看到:

http://jsfiddle.net/NfXFT/4/

的的jsfiddle还证明showLoading执行的文件准备好之前运行准备好文档调用它的块。

怎么回事,我该如何让这个帮手方法可用?

我在文件准备好的块内定义它,因为它依赖'#loading'可用。有没有更好的方法来实现提供助手功能来隐藏/显示加载屏幕的相同目标?我想把它保存在一个辅助函数中,因为实现可能会稍后改变。

回答

5

发布后,我意识到我做错了什么。

function showLoading() { 
    loadingControl.show(); 
} 

应该

showLoading = function() { 
    loadingControl.show(); 
} 
相关问题