我有以下腳本的作品,但我不認爲這是做的一個很好的方法:我是否根據ajax請求多次啓動jQuery.masonry?
success: function(widget_shell)
{
if(widget_shell.d[0]) {
$("#container").empty();
var i = 0;
for (i = 0; i <= widget_shell.d.length - 1; i++) {
var j = Math.floor(Math.random() * 200) + 50
var $widget = $("<div class='item col1' style='height:" + j + "px'></div>").appendTo($("#container"));
$("<span>" + widget_shell.d[i].widget_id + " - " + j + "</span>").appendTo($widget);
}
$('#container').masonry({
itemSelector : '.item',
columnWidth: 240
});
$('#container').masonry('reload')
}
}
我主要關注的是.masonry
一部分。由於success
發生很多次,即按照ajax請求,我認爲上面的代碼每次都重新啓動.masonry
,然後重新加載它。
我曾嘗試之外,其中包含success
上面的函數移動.masonry
啓動,但似乎試圖初始化在創建.masonry
前div
S,所以這是行不通的。
任何建議,或者這是一個很好的方法去解決這個問題?
我現在的網站在客戶端渲染速度非常慢,所以我正在儘可能地加快速度。 serverside都基於返回json數據,所以部分是快速的,但客戶端jquery沉重笨重。 – oshirowanen
更新了我的答案。祝你好運! – Bytemain