我正试图用ajax将数据显示到同位素砌体网格中。
使用滚动和显示工作的Ajax调用,但同位素网格不...
我看到了带有同位素的无限滚动插件和一些例子,但我没有找到是否可以用这些来调用ajax。
所以,如果你能帮助我,那就太好了!
这是我的javascript:
var $grid = $('#grid').isotope({
masonry: {
columnWidth: 300,
gutter: 25
},
itemSelector: '.grid-item',
sortAscending: false
});
loadmore();
$(window).scroll(function () {
IsScrollbarAtBottom();
});
//Fonction de détéction du bottom de page. Si le bas de la page est atteint au scroll, on charge plus de postes
// Detect page bottom and load data if its good
function IsScrollbarAtBottom() {
var docElement = $(document)[0].documentElement;
var winElement = $(window)[0];
if ((docElement.scrollHeight - winElement.innerHeight) == winElement.pageYOffset) {
loadmore();
}
}
/* //// LOADMORE ////
*
* On charge plus de postes, et on les construits avec buildMore
* Controllers PHP MAIN : fonction loadmore.
*
*/
function loadmore() {
$.ajax({
url: 'loadmore',
method: 'POST',
contentType: 'text/plain',
dataType: 'text',
success : function(res) {
buildMore($.parseJSON(res));
},
error: function(e, s, t){
console.log(e);
console.log(s);
console.log(t);
}
});
}
function buildMore(datas){
for(i=0;i<datas.length;i++){
var $post = setBlock(datas[i]);
$('#grid').append($post).isotope('appended', $post);
}
}
setblock function return html block with datas
所有这些都在document.ready范围内,脚本在正文末尾调用。
我甚至无法理解为什么网格不起作用,.isotope('appended', $post);
也不起作用我认为,因为我试图在$ post之后使用console.log进行回调,但它永远不会出现..
有时候我可以在网格上工作,但只能在开头的第一次loadmore调用,(我知道这不是真正好的函数名,但我稍后会更改它。)当我滚动并显示数据时,不关心电网。
我对同位素和砖石来说真的很新,所以我可能做错了。
(这里的第一个问题,我希望我做不好的事情哈哈)。
修改
经过2天多的尝试,我找不到解决方案......我尝试了链接到Isotope页面的无限滚动插件,但我找不到如何在......中启动ajax请求。 p>
我还尝试在每个帖子中添加同位素网格,添加在追加帖子的for循环中,然后执行.isotope('appended', $post);
,但似乎附加事件永远不会起作用,我试图用控制台设置回调函数。记录它永远不会发生...
我真的被封锁在这里,我在网上找不到任何帮助我......
如果某人遇到问题或解决方案,我会打开!
谢谢,
旗峰