Jquery mobile 1.4.3 popup在克隆页面中不起作用

时间:2014-07-04 15:43:13

标签: jquery jquery-mobile

我正试图从JQM 1.3.2转到1.4.3,我遇到了一个奇怪的问题。

我的主页显示指向其他页面的链接列表。这些页面是通过克隆母版页动态生成的。这些页面包含一个应该打开弹出窗口的按钮。它适用于JQM 1.3.2,而不适用于JQM 1.4.3。

克隆后看起来元素没有正确增强。但我尝试了新的enhanceWithin()函数没有成功。我也尝试了popup()函数。

以下是我的代码的简化版本:

<div data-role="page" id="home">
    <div data-role="header">
         <h1>JQM 1.3.2</h1>
    </div>
    <div data-role="content">
        <ul data-role="listview">
            <li><a href="#pagemaster">Master</a>
            </li>
            <li><a href="#pageclone" class="clone">Clone</a>
            </li>
        </ul>
    </div>
</div>
<div data-role="page" id="pagemaster">
    <div data-role="header">
        <h1>Page</h1>
        <a href="#home" data-rel="back" data-role="button" data-icon="arrow-l" data-transition="slide">Back</a>
    </div>
    <div data-role="content">
        <a href="#mypopup" data-rel="popup" data-role="button">Open Popup</a>
    </div>
    <div data-role="popup" id="mypopup">
        <div data-role="header">
            <h1>My Popup</h1>
        </div>
        <div data-role="content">This popup is working correctly</div>
    </div>
</div>

和javascript:

$(function() {
    $(".clone").click(function(event) {
        event.preventDefault();
        $("#pagemaster").clone().appendTo("body").attr("id", "pageclone");
        $.mobile.changePage("#pageclone");
    });
});

以下是JQM 1.3.2的工作小提琴:http://jsfiddle.net/matthieubrunet/EsZ4F/1/

这是JQM 1.4.3的一个不起作用的小提琴:http://jsfiddle.net/matthieubrunet/xrfAf/

如果单击主链接,弹出按钮将起作用,但如果单击克隆链接则不行。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我回答我的问题,因为FrédéricHamidi在评论中给了我解决方案: 我只需要更新我的身份证明它们仍然是独一无二的,并且它有效!

请注意,我有一个与控制组类似的情况,但这次是因为我在clone()之后调用了page()函数。这对于1.3是必要的,但不再是1.4。