2010-06-02 66 views
0

我有一個項目,在更改選擇框時我正在從服務器加載數據。我如何確保在數據加載之前用戶無法在頁面上執行其他任何操作?使用jQuery加載數據

回答

2

您可以使用jQuery UI或其他一些JavaScript庫創建模態對話框。

在插件的關閉事件中,您可以使用全局變量is_received檢查是否收到數據。如果is_received == true然後讓closeevent通過返回true關閉模式對話框,否則返回false。我假設關閉事件會阻止用戶關閉模態對話框,如果您返回false。您還可以在模態對話框中顯示用戶友好的消息,告訴用戶正在加載數據。

另一種方式可能是:禁用模式對話框的關閉按鈕,並從服務器接收數據後再次啓用這些按鈕。模態對話框將阻止用戶與內容進行交互。

+0

哈哈 - 那個「答案已發佈」的信息需要更快一點 – 2010-06-02 06:24:23

+0

是啊,一分鐘前。我認爲這可能只是HTML網頁上可能的解決方案,除非您禁用網頁上的所有輸入元素或隱藏一段時間的內容 – 2010-06-02 06:32:54

+0

您可以使用此頁面中的代碼http://jquery.malsup.com/block/#dialog。這正是你想要的。 – 2010-06-02 06:55:30

0

在jQuery中,您可以使用$.ajax()

使用async: false;

但我不建議這樣做。

2

從用戶界面的角度來看,加載模態窗口是最佳選擇。使用jQuery,您可以使用jQueryui - 啓動一個模式對話框,其中包含「工作」或類似的消息以防止用戶交互。

+0

我不想使用模態。直到數據從服務器加載。它應該顯示文本加載...並阻止用戶互動..我怎麼做... – Hacker 2010-06-02 06:42:28

+0

爲_everything_或只是一個特定的元素?如果元素是什麼樣的? – 2010-06-02 06:46:23

+0

哦,也許http://jquery.malsup.com/block/#overview會幫助你 – 2010-06-02 06:48:07