3

我的网站是用 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');
}

那没起效。

有没有人有办法解决吗?

4

2 回答 2

2

首先不要使用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 函数。设置任何超时需要/想要。

于 2012-12-27T12:22:28.553 回答
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');
}
于 2012-12-27T12:25:58.673 回答