Jquery mobile 在Jquery Mobile中打开pageshow上的弹出窗口

Jquery mobile 在Jquery Mobile中打开pageshow上的弹出窗口,jquery-mobile,popup,Jquery Mobile,Popup,似乎我无法在用事件“pageshow”调用的方法中打开弹出窗口。我知道我的代码没有错,因为当我点击按钮时弹出窗口被打开。。。我查了Firebug,没有错误信息。代码如下: HTML: <div data-role="popup" id="myPopup"> ... my elements </div> 有人知道有什么特别的事要做吗?如果你能解决我的问题,我将非常感激:) 提前谢谢 我认为您的代码中没有问题。您正在为哪个平台开发 尝试使用本例中的代码:根据我们在评

似乎我无法在用事件“pageshow”调用的方法中打开弹出窗口。我知道我的代码没有错,因为当我点击按钮时弹出窗口被打开。。。我查了Firebug,没有错误信息。代码如下:

HTML:

<div data-role="popup" id="myPopup">
    ... my elements
</div>
有人知道有什么特别的事要做吗?如果你能解决我的问题,我将非常感激:)


提前谢谢

我认为您的代码中没有问题。您正在为哪个平台开发


尝试使用本例中的代码:

根据我们在评论中的讨论,您可以在触发
pageChange
事件后使用
setTimeout()
函数解决此问题。我怀疑这可能是因为页面首先被呈现和改进,只有在这之后,具有特殊含义的元素(如弹出窗口)才能绑定其事件

您还可以尝试从弹出DIV中完全删除
data role=“popup”
,基本上是这样做的:

<div id="myPopup">
    ... my elements
</div>

$('#p_guarantee').live('pagechange', function(){
    $('#myPopup').popup();
    $('#myPopup').popup('open');
});

... 我的元素
$(“#p#u担保”).live('pagechange',function(){
$('#myPopup').popup();
$('myPopup')。popup('open');
});

。。。看看这是否适合您。

如果您想使用jquery mobile弹出窗口 首先创建一个链接,其中data rel popup和href指向包含pop元素的容器的id。div应具有数据角色弹出窗口


例子
... 弹出元素在这里。。。

您是否尝试过在
pagechange
上执行此操作?如果在更改为新页面之前,您的弹出div实际上位于以前存在的页面上,或者是位于您要更改的新页面上?它位于我要更改的页面上!我想到的最后一件事是,尝试通过
setTimeout()
和/或从弹出分区中删除
data role=“popup”
来执行弹出功能。。。如果这些都没有帮助,我可能已经没有建议了:)哼,这对setTimeout(“…”,100)有效;但我不认为这是我们应该做的!但除非我找到更好的方法,否则我会成功的!非常感谢您的帮助:-)我正在为iPad开发,但我也尝试了Firefox,这并没有改变任何事情。不幸的是,您的代码也不起作用:(您的代码起作用,但只有当我在页面上刷新它时才起作用,而不是当我来自另一个页面时才起作用。这很奇怪……尝试编写
$('.ui page active')。触发器('create');
,然后调用popup
open
方法。这不会改变任何事情:(我没有尝试使用pageChange事件,但对我来说,它可以使用pageshow事件:)第二种解决方案有一个问题:如果删除“data role”属性,div的内容将显示在页面中。嗯,这个data role的内容看起来很奇怪,特别是因为我认为popup()将基本上取代它的功能…但感谢各位的提醒!
<div id="myPopup">
    ... my elements
</div>

$('#p_guarantee').live('pagechange', function(){
    $('#myPopup').popup();
    $('#myPopup').popup('open');
});