从另一个弹出窗口打开一个弹出窗口

Posted

技术标签:

【中文标题】从另一个弹出窗口打开一个弹出窗口【英文标题】:Opening a popup window from another popup 【发布时间】:2012-12-12 19:34:13 【问题描述】:

我的网站是用 html5、CSS3 和 Jquery-moblie 构建的。

我使用 Jquery-mobile 的弹出窗口。

在一个弹出窗口上,我有一个按钮,当按下该按钮时,我希望当前弹出窗口关闭并打开另一个。

我是这样尝试的:

弹出窗口:

    <div id="MyFirstPopup" data-role="popup" data-theme="a" data-overlay-theme="a" class="ui-content">
        <a  data-role="button" data-transition="none" data-theme="b"
            onclick="ShowSecond();" data-icon="forward" data-iconpos="left" >
        </a>
    </div>

    <div id="MySecondPopup" data-role="popup" data-theme="a" data-overlay-theme="a" class="ui-content">
     ...
    </div>

JS:

function ShowSecond()

   $('#MyFirstPopup').popup('close');
   $('#MySecondPopup').popup('open');

没有用。

有人有解决办法吗?

【问题讨论】:

function ShowSecond() $('#MyFirstPopup').popup('close'); $('#MySecondPopup').popup('open'); 在id前使用#。 在我用#的我的网站上,只需编辑问题已被删除..我再次编辑了问题 你有什么错误吗? 【参考方案1】:

首先不要在 a 标签上直接使用 onclick="ShowSecond();"

我为您创建了一个工作示例:http://jsfiddle.net/Gajotres/8Arrt/

像这样添加点击事件:

 $('#popup-button').live('click', function(e) 
     setTimeout(function()$('#MySecondPopup').popup('open');,500)
     $('#MyFirstPopup').popup('close');
);

或者使用 .on( 如果你正在使用新的 jQuery 库。你不能打开新的弹出窗口,除非旧的弹出窗口关闭,但你也不能在关闭最后一个的事件中打开现在的弹出窗口,所以需要 setTimeout 函数。设置您需要/想要的任何超时时间。

【讨论】:

【参考方案2】:

试试这个:

<div id="MyFirstPopup" data-role="popup" data-theme="a" data-overlay-theme="a" class="ui-content">
    <a id="btOpenSecPopup" data-role="button" data-transition="none" data-theme="b"
        onclick="ShowSecond();" data-icon="forward" data-iconpos="left" >
    </a>
</div>

<div id="MySecondPopup" data-role="popup" data-theme="a" data-overlay-theme="a" class="ui-content">
 ...
</div>

你的 js 文件

$('#btOpenSecPopup').live('click', function(e) 
    $('#MyFirstPopup').popup('close');
    $('#MySecondPopup').popup('open');

【讨论】:

以上是关于从另一个弹出窗口打开一个弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

kivy - 绑定弹出窗口关闭以从另一个小部件实例中运行

如何从另一个弹出窗口中的链接调用弹出窗口。 jQuery手机

如果您打开另一个弹出窗口,请关闭打开的弹出窗口

当从另一个控制器(弹出窗口)访问 UILabel(作为一个插座)时,它仍然为零

从 jqModal 打开另一个弹出窗口

如何从第一个弹出窗口中打开第二个 jquery-mobile 弹出窗口