2015-05-19 38 views
0

有沒有辦法在運行時爲jQuery dialog box分配一個唯一的值,以便我可以使用分配的ID分別跟蹤每個對話框?運行時是否可以將唯一ID添加到對話框中?

我正在嘗試與電話系統進行交互,在電話系統中我會在有入站呼叫時顯示對話框。該對話框將有3個按鈕供用戶點擊。

  1. 拿起
  2. 發送到語音信箱
  3. 忽略

如果用戶點擊任意三個按鈕的Ajax請求被髮送到服務器,並在對話框上成功關閉的。

但是,如果用戶在打開對話框「等待響應」時收到另一個入站呼叫,我想用另一條消息顯示另一個對話框。但是我需要在打開之前將「從服務器接收的」呼叫標識分配給對話框,所以如果用戶拿起他們的物理電話「沒有點擊對話框中的按鈕」,我會發送一個dialog('close')到一個隨着用戶響應,不再需要代表用戶給予ID關閉它。 「我不想關閉所有對話框」

注意我有服務器端輪詢更新當前電話狀態的客戶端「瀏覽器」。所以使用這個我可以發出dialog('close'),但我希望我可以傳遞該ID,以便客戶端知道要關閉哪個對話框。

ID現在在頁面加載之前在運行時創建/分配。

因爲我不知道會的ID是什麼頁面加載,我不能做這樣的事情

<div id="PhoneCallId" Title="Inbound Call" style="display: none;"></div> 

我希望我可以分配一個唯一的編號之前(如123456),以盒子beforOpen,然後關閉箱與唯一的ID 123456

回答

0

這裏是一個樣本,讓您有一個模板元素追加拷貝使用.clone()頁面。每次需要新的對話框時,您都必須執行此操作。這應該是你的項目的開始。

注意:克隆元素時,可以在調用append()之前更改ID,而不會破壞頁面。

var idCounter=0; 
 
$('button').on('click', function(){ 
 
    idCounter++; //Generate new ID 
 

 
    var diag = $('#PhoneCallId'); //Get Template 
 
    var newDiag = $(diag.clone()); //Clone Id 
 
    
 
    newDiag.attr('id','PhoneCallId' + idCounter); //Change ID 
 
    newDiag.find(".dialogTitle").text('DIAGLOG ID = ' + idCounter); 
 
    
 
    $('#dialogPlaceHolder').append(newDiag); //Append & Show It 
 
    
 
    newDiag.show(); //Show it (you can call .dialog or other methods) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>CLICK ME TO ADD DIALOG!</button> 
 

 
<div id="PhoneCallId" Title="Inbound Call" style="display: none;">DIALOG <label class="dialogTitle">TEMPLATE</label></div> 
 

 
<div id="dialogPlaceHolder"></div>

相關問題