Javascript分页代码中的逻辑有问题吗

Javascript分页代码中的逻辑有问题吗,javascript,pagination,Javascript,Pagination,这是基本代码。用户单击一个链接,该链接将触发loadMore()。此函数从偏移量开始下拉JSON数据 此偏移量将根据其当前“页面”进行更改。第一页的偏移量为0。第二页是10页。第三页20等 当它们来回导航时,该偏移应该相应地改变。问题是,事实并非如此。我不明白为什么 有什么想法吗?这是因为ajax调用需要时间来执行 尝试: 这将在ajax调用中使用正确的值,并在ajax调用返回之前更改下一次调用的偏移量。如果同时调整了偏移量,您可能希望添加忽略ajax调用返回值的逻辑 这是因为ajax调用需要时

这是基本代码。用户单击一个链接,该链接将触发
loadMore()
。此函数从
偏移量开始下拉JSON数据

此偏移量将根据其当前“页面”进行更改。第一页的偏移量为0。第二页是10页。第三页20等

当它们来回导航时,该偏移应该相应地改变。问题是,事实并非如此。我不明白为什么


有什么想法吗?

这是因为ajax调用需要时间来执行

尝试:


这将在ajax调用中使用正确的值,并在ajax调用返回之前更改下一次调用的偏移量。如果同时调整了偏移量,您可能希望添加忽略ajax调用返回值的逻辑

这是因为ajax调用需要时间来执行

尝试:


这将在ajax调用中使用正确的值,并在ajax调用返回之前更改下一次调用的偏移量。如果同时调整了偏移量,您可能希望添加忽略ajax调用返回值的逻辑

您正在使用
new Browse()
并挂接实例的
loadMore
方法,是吗?是的,所有调用都正确。您正在使用
new Browse()
并挂接实例的
loadMore
方法,是吗?是的,所有调用都正确。
function Browse()
{
    this.offset = 10;
}

/*
 * @direction is either 'next' or 'prev'
 */
Browse.prototype.loadMore = function(direction)
{
    var _this = this;

    $.getJSON('/path/to/api?offset=' + this.offset, function(json)
    {
        _this.offset = (direction == 'next') ? _this.offset + 10 : _this.offset - 10;

        if (_this.offset > 10)
            previousButton.show();
        else
            previousButton.hide();
    });
}
//...
var _this = this;

$.getJSON('/path/to/api?offset=' + this.offset, function(json) {
  //...
});
_this.offset = (direction == 'next') ? _this.offset + 10 : _this.offset - 10;
//...