我有一个问题,如下所示,我有一个文本框来在执行 keyup 事件后搜索联系人,联系人被附加到一个 div,因为我也使用滚动分页,在 keyup 事件之后该 div 的内容被清理以替换它与新内容一起,但是如果我写得很慢,就会发生这种情况,因为当我写得非常快时,内容不会被替换,而是被附加到现有内容中,因此重复相同的寄存器,可能是因为 ajax 是异步的,之后每个 keyup 它仍然在执行请求。
代码
var paginam = 1;
$('div.dvusuarios').scroll(function() {
if ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) {
paginam++;
listcontactosmsj($('#txtbuscaamgcon').val(), paginam);
}
});
function listcontactosmsj(contacto, paginam) {
$.ajax({
type: 'GET',
url: "<? echo PUBLIC_PATH . 'message/selcontacts' ?>",
data: 'contacto=' + contacto
+ '&pagina=' + paginam
}).done(function(data) {
$('div.dvusuarios').append(data);
});
}
listcontactosmsj('', 1);
$('#txtbuscaamgcon').keyup(function() {
paginam = 1;
$('div.dvusuarios').html('');
listcontactosmsj($(this).val(),paginam );
});
我试图像这样解决它,但这不起作用
$('#txtbuscaamgcon').keyup(function() {
paginam = 1;
$('div.dvusuarios').html('');
var refrescar = setInterval(listcontactosmsj($(this).val(),paginam), 5000);
$.ajaxSetup({cache: false});
});
我不知道我的源代码有什么问题,mysql 和 php 脚本中的查询都可以。