Я взял немного кода для подкачки страниц с помощью jQuery, через Лука Маттеис здесь
Просмотр записей с помощью jQuery
Я внес некоторые изменения в скрипт подкачки, чтобы я мог использовать один и тот же код для подкачки разного контента в разных местах на одном сайте.
По большей части, я думаю, что это работает, за исключением того, что я получаю jsonObj - неопределенная ошибка в firebug.
Когда я использую alert (jsonObj.toSource ()), мне показывают переменные, которые я пытаюсь заполнить, но в то же время сценарий умирает из-за ошибки.
Я не могу понять, почему я получаю этот конфликт «неопределенный», и все же я легко могу поместить «неопределенные» значения в предупреждение. Я даже могу сказать alert (jsonObj.name), и он даст мне это значение, но все равно запустить jsonObj - неопределенная ошибка.
Вот код, который я использую
var pagedContent = {
data: null
,holder: null
,currentIndex : 0
,init: function(data, holder) {
this.data = data;
this.holder=holder;
this.show(0); // show last
}
,show: function(index) {
var jsonObj = this.data[index];
if(!jsonObj) {
return;
}
var holdSubset='';
for(i=0;i<=4; i++){
jsonObj=this.data[index+i];
this.currentIndex = index;
if(this.holder=='div#firstList'){
var returnedId = jsonObj.id;
var returnedName = jsonObj.name;
var calcScore=this.data[index+i].score/this.data[0].score*100;
var resultInput="<div ' id='"+returnedId+"'><div class='name'>"+returnedName+"</div><div class='score'><div style='width:"+calcScore+"%;'></div></div>";
}
if(this.holder=='div#secondList'){
var name=jsonObj.name;
var city=jsonObj.city;
var region=jsonObj.state;
var resultInput='<li><div>'+name+'</div<div>'+city+'</div><div>'+region+'</div></li>';
}
holdSubset= holdSubset+resultInput;
}
jQuery(this.holder).html('<br/>'+holdSubset);
if(index!=0){
var previous = jQuery("<a>").attr("href","#").click(this.previousHandler).text("< previous");
jQuery(this.holder).append(previous);
}
if(index+i<this.data.length){
var next = jQuery("<a style='float:right;'>").attr("href","#").click(this.nextHandler).text("next >");
jQuery(this.holder).append(next);
}
}
,nextHandler: function() {
pagedContent.show(pagedContent.currentIndex + 5);
return false;
}
,previousHandler: function() {
pagedContent.show(pagedContent.currentIndex - 5);
return false
}
};
Я вызываю функцию вот так
pagedContent.init(json.users.locations, 'div#secondList');
JSON выглядит так
{"locations" : [ {"id":"21319","name":"Naugatuck American Legion","city":"Ansonia","region":"Connecticut"},{"id":"26614","name":"Studio B789","city":"Acton","region":"Maine"},{"id":"26674","name":"Deering Grange Hall","city":"Bailey Island","region":"Maine"},{"id":"27554","name":"Accu Billiards","city":"Acushnet","region":"Massachusetts"}]}