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

3

我的网站是使用HTML5、CSS3和Jquery-mobile构建的。

我使用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');
}

它没有起作用。

有人有解决方案吗?


2
function ShowSecond() { $('#MyFirstPopup').popup('close'); $('#MySecondPopup').popup('open'); }请在id前使用#。 - Turcia
在我的网站上,我使用了 #,只需编辑问题即可删除。我再次编辑了该问题。 - Hodaya Shalom
你有收到任何错误吗? - Milind Anantwar
2个回答

2

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

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

像这样添加点击事件:

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

如果您使用的是新的jQuery库,请改用.on()。除非关闭旧弹出窗口,否则无法打开新的弹出窗口,但是在关闭最后一个弹出窗口的事件中也无法打开当前的弹出窗口,因此需要使用setTimeout函数。设置所需/想要的任何超时。

1

试试这个:

<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');
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接