Javascript Jquery post调用两次?
我在PHP中有一个函数advSearch。当有人滚动到页面底部时,我必须调用该函数。但当我滚动到页面底部时,advSearch会自动调用两次Javascript Jquery post调用两次?,javascript,php,jquery,Javascript,Php,Jquery,我在PHP中有一个函数advSearch。当有人滚动到页面底部时,我必须调用该函数。但当我滚动到页面底部时,advSearch会自动调用两次 $(document).ready(function() { var txt = 1; $(window).scroll(function() { if ($(window).scrollTop() >= ($(document).height() - $(window).height())) { $('#loadmore_tab01
$(document).ready(function() {
var txt = 1;
$(window).scroll(function() {
if ($(window).scrollTop() >= ($(document).height() - $(window).height())) {
$('#loadmore_tab01').css('display','block');
setTimeout(function(){
$.post("advSearch",{txt:txt},function(result){
if (result) {
$('#loadmore_tab01').css('display','none');
if (result != 0) {
var count = JSON.parse(result).length;
var oldcount = $('#tabs01').attr('data-count');
var newcount = parseInt(oldcount)+count;
$('#tabs01').children('.clear').remove();
generateHTML_vertical(JSON.parse(result),parseInt(oldcount));
$('#tabs01').attr('data-count',newcount);
}
}
});
},9000);
}
});
});
SetTimeout不会执行我认为您正在尝试的操作—它只会延迟运行—因此,当调用多次时,它将等待并调用多次 要进行节流或去盎司,您可以尝试使用中的u.throttle和.debounce函数,使用如下标志变量
当然,如果OP不想包含下划线,那么他可以添加这个方法。你能解释一下在我的条件下如何使用它吗。
var executed = false;
var txt = 1;
$(window).scroll(function() {
($(window).scrollTop() >= ($(document).height() - $(window).height())) {
$('#loadmore_tab01').css('display','block');
setTimeout(function(){
if(!executed){
$.post("advSearch",{txt:txt},function(result){
executed = true;
if (result) {
$('#loadmore_tab01').css('display','none');
if (result != 0) {
var count = JSON.parse(result).length;
var oldcount = $('#tabs01').attr('data-count');
var newcount = parseInt(oldcount)+count;
$('#tabs01').children('.clear').remove();
generateHTML_vertical(JSON.parse(result),parseInt(oldcount));
$('#tabs01').attr('data-count',newcount);
}
}
});
}
},9000);
}
});