0

您好,我有一个评论系统,最多可以加载 10 条评论。我使用 JQuery AJAX post 发送输入的数据,然后获取结果。

现在我添加了一个按钮来加载所有消息,该按钮将发送另一个 POST 并且该帖子将导致 PHP 中的一个函数加载所有结果而没有LIMIT 10。

一切都很好,但我有一个小问题。

如果我单击加载所有消息按钮,它将添加所有消息+而不是删除其他 10 个。

这是一个简单的修复,我只是在处理时删除另一个。但是当我单击加载所有消息按钮时,它不会显示所有消息,它会再次显示 10。

那是因为 javascript 一遍又一遍地执行加载消息过程。

因此我需要做这样的事情:

if (loadAll == false) {
     load10 messages
} else {
     load all messages
}

但我的问题是:

我怎样才能做到这一点?我必须将函数 loadAll 定义为 false(这是默认值),然后我可以这样做:

$("#loadall").click(function() {
     loadAll = true;
});

在它之前我可以添加:

var loadAll = true; 

要不就

 loadAll = true;

但是当javascript将处理时, loadAll = false 的定义将在您单击该链接后覆盖 true ,因此不会加载所有评论..

问题

如何使它不会在单击 $("#loadall").click() 时用 TRUE 覆盖 FALSE?所以它会删除 10 条评论,然后加载所有评论?

谢谢!

4

1 回答 1

1

你可以使用另一个变量说

var loadingData = false;

并在您执行 ajax 请求时将变量修改为 true。请求完成后将其移回 false。在执行 ajax 请求之前开始获取数据时检查这两个变量。

编辑:

var loadingData = false;
var loadAll = false;

function loadMessageFunc{
    if(!loadAll && !loadingData) {
        loadingData = true;
        //Get Data Here
        //On Result
        ...
        loadingData = false;
    }
}

function loadAllFunc{
    if(!loadingData) {
         loadAll = true;
         loadingData = true;
         //Get All Data Here
         //On Result
         ...
         loadAll = true; //If you want to stop load message calls after one load all call
         loadingData = false;
    }
}

这将确保两者不会同时被调用。您可以相应地清除/加载数据。

于 2013-04-15T15:39:23.063 回答