您好我有一个评论系统,它最多可以加载10条评论。 我使用JQuery AJAX帖子发送输入的数据,然后获取结果。
现在我已经添加了一个按钮来加载所有消息,该按钮将发送另一个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”)时不使用TRUE覆盖FALSE。click()? 那么它会删除10条评论,然后加载所有评论吗?
谢谢!
答案 0 :(得分: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;
}
}
这将确保两者不会同时被调用。您可以相应地清除/加载数据。