以编程方式打开jQuery Mobile弹出窗口会导致javascript运行时错误。
0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性“nodeName”
我已经使用IE和Chrome进行了测试,结果相似。
<div data-role="popup" id="myPopup" data-overlay-theme="b" data-theme="c" data-dissmissible="false" class="ui-corner-all">
<div data-role="header"><h1></h1></div>
<div data-role="content" data-theme="a" class="ui-corner-all ui-content">
<p id="myPopupText">test test</p>
</div>
</div>
<script type="text/javascript">
$("#main").on("pageinit", function () {
$("#myPopup").popup("open", { transition: "slideup" });
});
</script>
我也在.popup(“open”)之前尝试过.popup()。在VS2015中进行调试我看到弹出窗口显示,但在运行时它会在异常被触发时再次消失。
导致此异常的原因是什么,我该如何解决?
答案 0 :(得分:0)
您是否要在第一次加载页面时打开弹出窗口?如果是这样的话,请使用$(document).on(...并尝试稍微延迟:
$(document).on("pageinit","#main", function(){
setTimeout(function(){
$("#myPopup").popup("open", { transition: "slideup" });
}, 10);
});
您希望每次访问该页面时都弹出它吗?使用pagecontainer小部件transition event:
$(document).on( "pagecontainertransition", function( event, ui ) {
if (ui.toPage.prop("id") == "main"){
setTimeout(function(){
$("#myPopup").popup("open", { transition: "flip" });
}, 10);
}
});
是否要在页面加载后启动弹出窗口以响应用户操作?
$(document).on("pagecreate","#main", function(){
$("#btnPop").on("click", function(){
$("#myPopup").popup("open", { transition: "flip" });
});
});