执行函数时遇到问题。我想要实现的是当我点击#loadmore时,页面变量应该增加1个数字。从服务器加载更多项目(点击它时加载相同的内容)。
$(document).on('click', '#blogs', function blogs() {
$('#content, #category').empty();
$('#category').prepend('<div class="categories_listing"><span data-type="blogs" data-category="5">Blog Category</span></div>');
var count = "15";
var page = "1";
$.getJSON('https://domain.com/get_posts/?count=' + count + '&page=' + page, function (data, status) {
if (data !== undefined && data.posts !== undefined) {
$.each(data.posts, function (i, item) {
var date = item.date;
var dateSplit = date.split(" ");
var dateSplit2 = dateSplit[0].split("-");
var newDate = dateSplit2.reverse().join('-'); // 26-06-2013
var str = item.title;
$('#content').append('<div class="blogs_article" data-item="' + item.id + '"><div>' + str.substring(0, 1) + '</div>' + item.title + '<div>' + newDate + ' — ' + item.author.first_name +'</div></div>');
if (data !== undefined) {
$('#stats').text('Page ' + data.query.page + ' of ' + data.pages + ' | Total posts ' + data.count_total + '');
}
if (data.query.page < data.pages) {
$("#loadmore").show();
} else {
$("#loadmore").hide();
}
page++;
});
}
});
$('#category').append('<div id="loadmore"><div id="stats"></div><div id="loadmore">load more</div></div>');
$('#loadmore').click(blogs);
});
请帮助我,我整整一夜都无法工作。提前谢谢。
答案 0 :(得分:2)
变量页面必须在click回调的范围之外声明,否则变量将在click函数的本地范围内,并且将在每次单击事件时重新初始化。
var page = 1;
$(document).on('click', '#blogs', function blogs() {
$('#content, #category').empty();
$('#category').prepend('<div class="categories_listing"><span data-type="blogs" data-category="5">Blog Category</span></div>');
var count = "15";
$.getJSON('https://domain.com/get_posts/?count=' + count + '&page=' + page, function (data, status) {
if (data !== undefined && data.posts !== undefined) {
$.each(data.posts, function (i, item) {
var date = item.date;
var dateSplit = date.split(" ");
var dateSplit2 = dateSplit[0].split("-");
var newDate = dateSplit2.reverse().join('-'); // 26-06-2013
var str = item.title;
$('#content').append('<div class="blogs_article" data-item="' + item.id + '"><div>' + str.substring(0, 1) + '</div>' + item.title + '<div>' + newDate + ' — ' + item.author.first_name + '</div></div>');
if (data !== undefined) {
$('#stats').text('Page ' + data.query.page + ' of ' + data.pages + ' | Total posts ' + data.count_total + '');
}
if (data.query.page < data.pages) {
$("#loadmore").show();
} else {
$("#loadmore").hide();
}
});
page++;
}
});
$('#category').append('<div id="loadmore"><div id="stats"></div><div id="loadmore">load more</div></div>');
$('#loadmore').click(blogs);
});