2014-03-04 41 views
0

我有一個jquery片段,它在saleforce的VF頁面上工作。我將一個數組從SF中的查詢結果傳遞給腳本中的一個方法,該方法應該將每個數組項目顯示爲唯一的對話窗口。所有的數組元素應該循環遍歷,並且只有當用戶關閉對話框時,它是否應該繼續到下一個數組元素並創建另一個對話框。在循環中一次顯示多個對話框=>錯誤

到目前爲止,我得到的jQuery代碼運行,它只顯示1個對話框,最後一個。調試後,我發現它不是停在每個對話框,所以所有的消息都是通過不停的循環。如果我使用alert,它可以正常顯示每個消息的順序。請參見下面的代碼,任何幫助將不勝感激:

//display the dialog window for each message 
function showPopMessages(pPopMsgs){ 
    var updatedMsgs = new Array(); 
    console.log('updatedMsgs.legnth: '+pPopMsgs.length); 
    $j.each(pPopMsgs, function(index, value){ 
     console.log('updatedMsgs.value: '+value.Message__c); 
     $j("#dialog-confirm").html(value.Message__c); 
     $j("#dialog-confirm").css("display","block"); 
     $j("#dialog-confirm").dialog(); //IIT IS NOT STOPPING HERE!!! 
     //alert(value.Message__c); 
    }); 
} 
+0

什麼是VF頁面?這個代碼的輸出是什麼? – helle

+0

對不起VF頁面是salesforce.com的visualforce頁面。我沒有明白你的意思?輸出?輸出將是對話框窗口打開和「停止」以顯示所需消息,然後再次顯示每條消息。代碼運行良好,然後獲取正確的消息並將其傳遞到將成爲對話框的div上。然後在div上調用對話框方法,使其成爲對話窗口。問題正如我所說的,循環不會停留在$ j(「#dialog-confirm」).dialog();所以我只看到最後一條消息,其他所有消息都被迭代覆蓋(或類似的東西)。 –

回答

0

我不知道很多有關jQuery用戶界面,但它好像你不傳遞任何參數的對話框()。這聽起來像是一個不發生任何事情的祕訣。如果您只是添加.dialog('wait');,會發生什麼情況?

當然,如果您在控制檯中發現錯誤,我們希望看到這些錯誤。

+0

謝謝@changokun,但'等'不是jQuery中的對話()方法,所以不能使用它。我沒有得到任何錯誤,我已經完成了所有傳遞給代碼的消息的console.log,並且它們正在迭代正確。唯一的問題是,代碼沒有停在每個$ j(「#dialog-confirm」).dialog(); –