簡體   English   中英

JavaScript:在div.container <window.height時執行某些操作

[英]JavaScript: do something while div.container < window.height

我有一個功能getRow() ,將元素放置在.container 頁面加載時,我希望有足夠的元素來填充頁面。

$(document).ready(function() {
    while($('.container').height() < $(window).height()) {
            getRow();
    };
});

當我這樣做時,瀏覽器凍結並崩潰。 如果我用if代替while ,它將按預期放置一個元素(當然只是一個)。

我怎樣才能解決這個問題?

由於您正在使用AJAX加載內容,並且正如zerkms所指出的那樣,它是異步的,因此您應該在AJAX請求完成后檢查容器的高度。 就像是:

function getRow() {
  $.ajax({
    url: 'your-url.php',
    success: function(response) {
      $('.row:last').after(response);
      checkHeight();
    }
  });
}

function checkHeight() {
  if ($('.container').height() < $(window).height()) {
    getRow();
  }
}

$(document).ready(function() {
  checkHeight();
});

編輯:由於要異步加載內容,因此必須再次等待內容加載並附加到DOM上,然后才能再次檢查內容高度。 如果執行一個while()循環,然后再將其鎖定並進行無窮循環,則異步請求將永遠不會完成,因為您已經凍結了瀏覽器。

暫無
暫無

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

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