2012-08-05 115 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(); 
} 
相關問題