2016-04-27 61 views
0

我使用jQuery UI 1.11.4創建了幾個對話框。我試圖從1.11.3升級我的jQuery到2.2.0。嘗試初始化我的jQuery UI對話框時收到錯誤消息。jQuery 2.2.0升級後動態創建jQuery UI對話框錯誤

$deptdialog = $('<div id="deptdialog"></div>') 
    .html('<iframe id="deptiframe" style="width:100%;" scrolling="no" src="" />') 
    .dialog({ ... }); 

初始化像這樣以後。

$deptdialog .dialog('open'); 

我收到此錯誤

Uncaught TypeError: Cannot read property 'pageYOffset' of null 

而步入jQuery的錯誤,它在這條線時

win = getWindow(doc); 
top: box.top + win.pageYOffset - docElem.clientTop, 

勝利結束爲空。任何人都指出我爲什麼會發生這種情況,或者如何解決這個問題?是因爲我在對話窗口中加載了一個動態iFrame嗎?

回答

1

只有在我的代碼片段中的文檔準備就緒之前聲明對話框對象(即:$ deptdialog)時纔會出錯,否則它會正常工作。

$(function() { 
 
    $deptdialog = $('<div id="deptdialog"></div>') 
 
    .html('<iframe id="deptiframe" style="width:100%;" scrolling="no" src="https://en.wikipedia.org/wiki/Main_Page" />') 
 
    .dialog({autoOpen: false}); 
 

 
    $('#btn').on('click', function(e) { 
 
    $deptdialog.dialog('open'); 
 
    }) 
 
});
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 

 

 

 
<button id="btn">Open Dialog</button>

+0

謝謝!這是我的問題。 –