我使用jQuery瀑布作为响应式网格布局。
我正在使用砖石,并有一个加载更多的按钮功能,但我正在修改我有什么,并试图理解代码的作用。
因此,对于load more按钮,我有以下内容:
$(document).ready(function(){
var pageIndex = 1;
$('#loadmorebuilds-div').click(function() {
$("#buildcontainer").append('<div class="blogresults"><br><br></div>');
});
});从理论上讲,这很好用。然而,我有另一个页面,从我的数据库加载所有额外的内容。
这是以前使用过的:
$(document).ready(function(){
var pageIndex = 1;
$('#loadmorebuilds-div').click(function() {
$('.countvar').detach();
$('#buildcontainer').imagesLoaded( function(){
$.ajax({
url: 'includes/loadmorebuilds.php?type=' + type + '&pageIndex=' + pageIndex,
success: function(html) {
var el = $(html);
$("#buildcontainer").append(el);
$("#loadmorebuilds-div").stop().fadeOut();
pageIndex++;
var rowCount = $(".countvar").html();
if (rowCount < 16) {
$('#loadmorebuilds-div').remove();
$('.countvar').detach();
} else {
$('.countvar').detach();
}
}
});
});
});
});这也是可行的,并且确实加载了新数据,但似乎加载了数据,并且没有正确地将其放入网格中。其中一个结果位于其他结果的下方,但其他结果在左上角重叠,并位于其他结果的下方,依此类推。
我可以使用第一个示例手动添加尽可能多的div,它工作得很好。
此外,在使用第二个示例时,这些项似乎会刷新,而不是仅加载新数据。
在我看来,这跟这个有关:
success: function(html) {
var el = $(html);有没有更好的方法从请求的页面中获取内容,并简单地将其附加回div。
调用的页面只是在数据库上运行一个查询,并在foreach语句中回显div。所以div布局应该是例如
<div class="blogresults"></div>你对这个有什么想法吗?
发布于 2014-01-25 22:28:39
在ajax成功事件中,您应该这样做:
success: function(data) {
$('blogresults').html(data);
}发布于 2014-01-27 06:27:07
搜索瀑布文件夹中的示例,它似乎使用了一个“回流”功能,与作品相同(我猜)和砖石“重新加载”。
我试过了
$("#buildcontainer").append(html).waterfall('reflow');它是有效的:)
https://stackoverflow.com/questions/21351261
复制相似问题