2

我正在使用 jQM 弹出窗口来“提醒”用户注意某些事情。例如,我提出一个$.ajax()请求,如果响应有问题,我会弹出一个弹出窗口。像这样的东西:

<div data-role="popup" id="popup">
    <p id="popupMsg"></p>
</div>

$("#popupMsg").html(msg);
$("#popup").popup({
    history:false,
    overlayTheme: "a"
}).popup('open');

一切正常,但如果我将弹出窗口更改为包含一个按钮,这样:

<div data-role="popup" id="popup">
    <p id="popupMsg"></p>
    <a href="#" data-role="button" data-rel="back" data-theme="c">Ok</a>
</div>

然后链接没有样式,它只会显示一个“Ok”链接。如果我将弹出窗口移动到一个对话框,那么它所有的工作,按钮和所有,但因为我希望看到下面的页面,我想让它保持一个弹出窗口。

我错过了什么吗?我看到了很多关于弹出窗口/对话框的问题,但它们都是指单击按钮来显示它们。我使用 jquery-1.8.2 和 jquery.mobile-1.2.0。


编辑:我的情况的解决方案是弹出窗口div必须进入页面内部div,而不是页面外部(如对话框div那样),如下所示:

之前(错误)

<div data-role="page">
    <div data-role="content">
        ...page stuff...
    </div>
</div>
<div data-role="popup" id="popup">
    <p id="popupMsg"></p>
    <a href="#" data-role="button" data-rel="back" data-theme="c">Ok</a>
</div>

之后(右)

<div data-role="page">
    <div data-role="content">
        ...page stuff...
        <div data-role="popup" id="popup">
            <p id="popupMsg"></p>
            <a href="#" data-role="button" data-rel="back" data-theme="c">Ok</a>
        </div>
    </div>
</div>
4

1 回答 1

0

您需要刷新 jQM 标记

JS

var msg = 'Look! A new button!';

$("#popupMsg").html(msg);
$("#popup").popup({
    history:false,
    overlayTheme: "a"
}).popup('open');

$('#okButton').button('refresh'); // you need to refresh jQM markup

HTML

<div data-role="page">
    <div data-role="content">

        <div data-role="popup" id="popup">
            <p id="popupMsg"></p>
            <a href="#" data-role="button" data-rel="back" data-theme="c" id="okButton">Ok</a>
        </div>

    </div>
</div>
于 2012-11-13T13:34:57.437 回答