2012-03-08 212 views
1

我有以下問題。我試圖在iframe的模式對話框中添加動態按鈕。 我有Iframe對話框與標準按鈕(如關閉,好..)。在通過iframe url scr屬性加載新內容 後,我需要動態添加新按鈕,例如「註冊」。 我的代碼:jQuery對話框動態添加按鈕

var iDlg= $('<iframe src=price.php?code="'+uCode+'" frameborder="0" />').dialog({ 
       modal: true, 
       dialogClass: 'priceBox', 
       title: 'Detail',   
       height: 400, 
       width: 500, 
       draggable: false, 
       resizable: false, 
       //show: "fade", 
       buttons: { 
       "close": function() { 
        $(this).dialog("close"); 
       } 
      }  
      }).width(480); 

price.php來源:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     var opt = { 
      buttons: { 
       'New button...': function() { 
        $(this).dialog('close'); 
       } 
      } 
     }; 
     $(iDlg).dialog('option', opt); 


    }); 
    </script> 

但是,這種解決方案是行不通的。請幫忙。謝謝。

+0

可能是一個錯字,但它說'.iDlg'代替'iDlg'。另外,是否可以從您使用它的地方訪問該變量? – Niklas 2012-03-08 08:04:49

+0

相同:('iDlg'沒有定義(price.php中的錯誤) – Los 2012-03-08 13:39:02

回答

0

在price.php,你試圖通過選擇一個函數在父,即parent.addButton(opt);

然後父框架中你必須

function addButton(opt) 
{ 
    $(iDlg).dialog('option', opt); 
} 

當然,iDlg需要在父級中具有正確的範圍(全局)。

3

你必須告訴它你傳遞什麼選項,在這種情況下,你是值傳遞的「按鈕」選項:

$(document).ready(function(){ 
    var btns = { 
     'New button...': function() { 
      $(this).dialog('close'); 
     } 
    }; 
    iDlg.dialog('option', 'buttons', btns); 
});