2012-06-25 35 views
4

我需要一個jQuery UI對話框,彈出並顯示一個基本的窗體,其中還包括一個外部JavaScript文件。通過jQuery UI對話框加載嵌入的腳本?

模式彈出,但沒有腳本內容加載。不知道爲什麼。如果我直接進入模式加載的頁面,它可以正常工作。

莫代爾內容:

<link rel="stylesheet" href="http://www.bankrate.com/free-content/css/bankrate-fcc-calculators.css" type="text/css"/> 

<input id="mrtgCal" type ="text" value="1,Arial,600" style="display:none" /> 

<script language="Javascript" src="http://js.bankrate.com/free-calculators/free-simple-mortgage-calculator-widget.js" type="text/javascript"></script> 

<script type="text/javascript">mrtgCalcinit();</script> 

模態呼叫:

$(function(){ 
     $('.modal-popup a, .email-button a').each(function() { 
      var $link = $(this); 
      var $dialog = $('<div></div>') 
       .load($link.attr('href') + ' #region-content') 
       .dialog({ 
        autoOpen: false, 
        width: 600, 
        draggable: false, 
        resizable: false, 
        modal: true, 
        show: "fade", 
        hide: "fade", 
        closeText: 'X' 

       }); 
      $link.click(function(){ 
       $dialog.dialog('open'); 
       return false; 
      }); 

     }); 
    }); 

回答

1

這些腳本不是因爲你調用​​的方式運行。在URL之後使用選擇器時,庫不會運行嵌入式腳本。我的意思是在「href」值的末尾添加' #region-content'

爲什麼?我不完全知道;我懷疑它與jQuery不知道嵌入的<script>機構是否依賴<head>(或其他地方)中的腳本來工作有關。

0

最好的變種是寫你的自定義jQuery UI的小部件,擴展jQuery UI對話框與您的功能。

1

如前所述,load不會加載腳本(請閱讀腳本執行部分)。然而,擴展對話框並不是必須的,您可以使用.delegate(),.on()甚至使用名爲liveplugin的插件來管理加載到對話框中的動態內容。