Jquery mobile 无法在jQuery Mobile中以编程方式打开面板或弹出窗口

Jquery mobile 无法在jQuery Mobile中以编程方式打开面板或弹出窗口,jquery-mobile,popup,panel,Jquery Mobile,Popup,Panel,我正在建立我的第一个JQM站点,所以我想我遗漏了一些简单的小东西,这些东西给我带来了很多问题 我已经为菜单设置了页面、页眉、内容和页脚以及一个面板。然后我有一个js文件,其中包含以下内容: $(文档).on('pageinit',函数(事件){ 警报(“每次导航到另一个页面时,此选项都有效”); $(“#菜单面板”).panel(“打开”);//这仅在第一次使用时有效 $(“#新总额”).popup(“open”);//这永远不起作用 }); 有人能告诉我为什么每次你导航到另一个页面时都会出现

我正在建立我的第一个JQM站点,所以我想我遗漏了一些简单的小东西,这些东西给我带来了很多问题

我已经为菜单设置了页面、页眉、内容和页脚以及一个面板。然后我有一个js文件,其中包含以下内容:

$(文档).on('pageinit',函数(事件){
警报(“每次导航到另一个页面时,此选项都有效”);
$(“#菜单面板”).panel(“打开”);//这仅在第一次使用时有效
$(“#新总额”).popup(“open”);//这永远不起作用
});
有人能告诉我为什么每次你导航到另一个页面时都会出现这种行为而不是面板和弹出窗口

我也无法从浏览器控制台(使用chrome)以编程方式打开它们

这是我的HTML:


现金流-IFA门户
主题 安卓 苹果 窗户
屏幕大小 电脑类 药片 电话 现金流量计算器 投资假设 时间范围(年) 扣除单位信托费后的名义回报(%) 年通货膨胀率(%) 平台管理费净额(%) 财务顾问费(%) 捐款和提款
新增 贡献 撤回 金额(R) 日期 宠儿
在页面事件发生后立即打开弹出窗口和对话框是很棘手的。要解决此问题,您需要使用
setTimeout
打开对话框或弹出窗口

$(document).on('pageinit', function() {
 setTimeout(function () {
  $('#new-lump-sum').popup('open');
 }, 100); // delay above zero
});

我试过了,效果很好,但只是在我第一次加载页面时,当我用弹出窗口离开页面并返回时,页面不会再次打开。@MikhailJanowski,因为您使用的是只触发一次的
pageinit
。如果希望每次打开页面时都打开它,请改用
pageshow
。这是否与加载第二个页面时复制的ID有关?我尝试使用类,但这导致了一个js错误。类应该可以正常工作,没有任何问题。重复的ID可能会导致一些问题<代码>$(文档)。在('pageshow','[data role=page]#pageID',function()@MikhailJanowski,您应该在每页中都有一个面板。