我正在从数组构建jQuery mobile中的项目列表,并对它们进行分页。 PHP通过wordpress函数包含页面的页眉和页脚。基本上我正在做的是计算我需要容纳数组中的元素的页数,然后克隆页面元素多次,并循环它们以向每个元素添加元素。在每个页面的末尾,我将上一个和下一个按钮放在一起。
问题是这些按钮根本不会改变页面。
页面元素如下所示:
<div data-role="page" id="press-media-page">
<?php get_template_part("loop", "header"); ?>
<div data-role="content">
<h1>Press & 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的默认链接劫持
答案 0 :(得分:1)
好吧,结果证明是一个愚蠢的错误:
navButtonGrid.left.append("<a>").attr({ //...
我添加了<a>
标记,但之后我仍在处理navButtonGrid.left
元素,即ui-block
div。将其更改为
navButtonGrid.left.append($("<a>").attr({ /* ... */ }));
解决了这个问题。