使用jquery mobile克隆页面

时间:2012-02-21 01:19:19

标签: javascript jquery jquery-mobile

我正在从数组构建jQuery mobile中的项目列表,并对它们进行分页。 PHP通过wordpress函数包含页面的页眉和页脚。基本上我正在做的是计算我需要容纳数组中的元素的页数,然后克隆页面元素多次,并循环它们以向每个元素添加元素。在每个页面的末尾,我将上一个和下一个按钮放在一起。

问题是这些按钮根本不会改变页面。

页面元素如下所示:

<div data-role="page" id="press-media-page">

    <?php get_template_part("loop", "header"); ?>

    <div data-role="content">
        <h1>Press &amp; Media</h1>
    </div>

    <?php get_template_part("loop", "footer"); ?>

</div>

创建每个页面:

newPage = $("#press-media-page").clone().attr({
    "id": "press-media-page-" + pageNumber,
    "data-url": "press-media-page-" + pageNumber
}).page();

然后在添加元素和按钮后,将其附加到文档:

$.mobile.pageContainer.append(newPage);

创建页面后,我遍历它们并触发创建事件:

$("#press-media-page").trigger("create");
for (var i = 1; i < pages; i++)
    $("#press-media-page-" + i).trigger("create");

页面显示在文档的正确位置,按钮链接到右页面ID,但是它们无法导航。

我需要做些什么才能让它发挥作用?

修改

这是我创建按钮的方式:

if (pageNumber > 0)
    navButtonGrid.left.append("<a>").attr({
        "href": "#press-media-page" + ((pageNumber > 1) ? "-" + (pageNumber - 1) : ""),
        "data-role": "button",
        "data-icon": "arrow-l",
        "data-iconpos": "left"
    }).text("View Newer");
if (pageNumber < totalPages - 1)
    navButtonGrid.right.append("<a>").attr({
        "href": "#press-media-page-" + (pageNumber + 1),
        "data-role": "button",
        "data-icon": "arrow-r",
        "data-iconpos": "right"
    }).text("View Older");

我没有从按钮接管任何事件,只是使用jQuery mobile的默认链接劫持

1 个答案:

答案 0 :(得分:1)

好吧,结果证明是一个愚蠢的错误:

navButtonGrid.left.append("<a>").attr({ //...

我添加了<a>标记,但之后我仍在处理navButtonGrid.left元素,即ui-block div。将其更改为

navButtonGrid.left.append($("<a>").attr({ /* ... */ }));

解决了这个问题。