簡體   English   中英

jQuery帖子調用兩次?

[英]Jquery post call twice?

我在PHP中有一個功能advSearch 當有人滾動到頁面底部時,我必須調用該函數。 但是,當我滾動到頁面底部時,會自動兩次調用advSearch()

$(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不會執行我認為您在此處嘗試的操作-它只會延遲運行它-因此,當多次調用時,它將等待並多次調用。

要限制或_.throttle抖動,您可以嘗試從http://underscorejs.org/獲得_.throttle_.debounce函數。

使用像這樣的標志變量

 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); } }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM