我使用jQuery UI 1.11.4创建了一些Dialog。我试图从1.11.3升级我的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吗?
答案 0 :(得分: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>