【发布时间】:2014-11-13 15:56:03
【问题描述】:
我有一个需要使用分页的特定场景。
在 Phonegap 从 Android 联系人加载时,当用户浏览页面时,当用户点击分页中的最后一页时,我希望将另一组联系人列表动态加载到添加到现有页面的新页面中分页。
我这样做是因为我必须加载超过 1000 个联系人的列表,我不想在初始镜头本身上加载这些列表 - 即使它只是分页。
我找到了动态创建页面的链接,但没有一个有我的特定要求(当用户到达最后一页时将新列表加载到新页面中)。
此链接jQuery pagination with dynamic <li> 是迄今为止我找到的最佳链接,但我仍然需要一种方法来确定用户是否已到达最后一页,在分页中。
注意:这不是一个 ajax 请求,它是一个电话间隙 api,它从本机 android 联系人获取联系人,我必须手动迭代对象并动态创建列表。
此外,由于使用分页插件时分页按钮是默认设置的,我不知道如何向这些页面按钮添加事件或调整它们。
我的代码 sn-p:
navigator.contacts.find(filter, onSuccess, onError, options);
function onSuccess(contacts) {
var html = "";
for (var i = 0; i < contacts.length; i++) {
if ($.trim(contacts[i].displayName).length != 0 || $.trim(contacts[i].nickName).length != 0) {
html += '<li>';
html += '<h2>' + contacts[i].displayName ? contacts[i].displayName : contacts[i].nickName + '</h2>';
if (contacts[i].phoneNumbers) {
html += '<ul class="innerlsv" data-role="listview" data-inset="true">';
html += '<li><h3>Phone Numbers</h3></li>';
for (var j = 0; j < contacts[i].phoneNumbers.length; j++) { var dialPadVar = '#main-wrapper';
html += "<li onclick=\"contactAppendNumber('"+contacts[i].phoneNumbers[j].value+"');changePage('#main-wrapper');\">Type: " + contacts[i].phoneNumbers[j].type + "<br/>" +
"Value: " + contacts[i].phoneNumbers[j].value + "<br/>" +
"Preferred: " + contacts[i].phoneNumbers[j].pref + "</li>";
}
html += "</ul>";
}
html += '</li>';
}
}
if (contacts.length === 0) {
html = '<li data-role="collapsible" data-iconpos="right" data-shadow="false" data-corners="false">';
html += '<h2>No Contacts</h2>';
html += '<label>No Contacts Listed</label>';
html += '</li>';
}
$("#contactsList").html(html);
$("#contactsList").listview().listview('refresh');
$(".innerlsv").listview().listview('refresh');
}
【问题讨论】:
-
你做了什么?根据您的描述,我认为在单击页面按钮之一时(无论是否通过 AJAX)加载额外的项目(从服务器)没有任何困难。
-
@mrmoment 抱歉不准确,我正在使用 Phonegap 加载 Android 联系人,所以它不是 ajax 调用。使用插件时的分页按钮也是默认设置的,所以我不知道如何向这些页面按钮添加事件或调整它们。我已经编辑了我的问题,请重新查看
标签: jquery dynamic pagination