我有一个函数getRow()
,它将一个元素放在.container
中。当页面加载时,我希望有足够的元素来填充页面。
$(document).ready(function() {
while($('.container').height() < $(window).height()) {
getRow();
};
});
当我这样做时,浏览器冻结并崩溃。如果我用while
替换if
,它会按预期放置一个元素(当然只有一个)。
我该如何解决这个问题?
答案 0 :(得分:1)
由于您使用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()循环之前你会锁定你自己和无限循环,你的异步请求将永远不会完成,因为你已经冻结了你的浏览器。