use*_*448 5 tabs triggers reload jquery-masonry
因为我有不同的标签,砌体不加载隐藏的项目,所以当我点击新标签时图像堆叠在一起,我知道之前已经问过这个问题并通过单击标签回答触发器砌体,但是如何我这样做而不会弄乱第一个标签.
目前称为砖石砌筑
$(function(){
$('#container').masonry({
// options
itemSelector : '.item',
columnWidth : 260
});
});`
$(window).load(function(){ $('#container').masonry(); });
Run Code Online (Sandbox Code Playgroud)
对于标签2也是如此,但具有不同的ID - #container2
选项卡一个完美地工作,但选项卡二堆叠图像,直到您调整浏览器的大小,修复它并正常工作
像这样做:
$(function(){
$('#container').masonry({
// options
itemSelector : '.item',
columnWidth : 260
});
});
var masonryUpdate = function() {
setTimeout(function() {
$('#container').masonry();
}, 500);
}
$(document).on('click', masonryUpdate);
$(document).ajaxComplete(masonryUpdate);
Run Code Online (Sandbox Code Playgroud)
再也不用担心了!或者,您可以在其他动画之后再次调用它,例如:
$('#something').slideDown(600, masonryUpdate);
Run Code Online (Sandbox Code Playgroud)
即使您不这样做,只需单击页面中的任何位置即可更新砌体.
是的,您可以在 onclick 事件上重新加载砌体视图,如下所示:-
$container.masonry('reload');如果它适合您,请使用。就我而言,这不是工作。我已经使用完毕了setTimeout(function(){ $container.masonry() }, 400);。在函数中调用砌体setTimeout。
$(document).ready(function($) {
var $container = $('#youContainerId');
$("#TabId").live("click",function(){
//$container.masonry('reload');
setTimeout(function(){ $container.masonry() }, 400);
});
});
Run Code Online (Sandbox Code Playgroud)