带有砌体插件的Jquery回调

带有砌体插件的Jquery回调,jquery,callback,Jquery,Callback,我有一个基本的切换开关,在关闭所有其他类似div时显示单击的div。这很好,切换不是问题。见下文: $(document).ready(function(){ $('.threadWrapper > .littleme').click(function() { $(this).next().toggle('slow'); $(this).toggle('slow'); $('.littleme').not(this).next().hide('slow'); $('.li

我有一个基本的切换开关,在关闭所有其他类似div时显示单击的div。这很好,切换不是问题。见下文:

$(document).ready(function(){
 $('.threadWrapper > .littleme').click(function() {
  $(this).next().toggle('slow');
  $(this).toggle('slow');
  $('.littleme').not(this).next().hide('slow');
  $('.littleme').not(this).show('slow');
  return false;
 }).next().hide();
});
$(function(){
    $('#mainContent').masonry({
    columnWidth: 200, 
    itemSelector: '.threadWrapper:visible',
});
});
我还使用了用于jQuery的Mashine pluggin,它将所有选定的div元素按纵向和纵向进行组织。对于各种不同的div高度,它同样适用。见下文:

$(document).ready(function(){
 $('.threadWrapper > .littleme').click(function() {
  $(this).next().toggle('slow');
  $(this).toggle('slow');
  $('.littleme').not(this).next().hide('slow');
  $('.littleme').not(this).show('slow');
  return false;
 }).next().hide();
});
$(function(){
    $('#mainContent').masonry({
    columnWidth: 200, 
    itemSelector: '.threadWrapper:visible',
});
});
我希望它在每次div展开或折叠时重新组织布局。实际上,触发.mashise命令作为初始.click函数的回调。这对我不起作用。初学者问题的同位语

看看它现在是如何工作的:kalpaitch.com

安德鲁

加比-谢谢你的语法检查,我很擅长把它们弄得乱七八糟,然后花半个小时到处寻找它们


Cyro-这很完美,很有效,我将在不久的将来使用它。我打算添加的内容是,在以动画速度显示/隐藏/切换这些内容的情况下,如何实现这一点(上面的代码相应更改)。然后,在div被扩展之前,砌体调用将被触发(就像目前在kalpaitch.com上发生的那样)。非常感谢您的回答,这样做肯定会更简单。

您在包含massy.js文件的路径中有错误

当它应该是
js/jquery.massy.js
时,可以使用
js/jquery.massy.js
(大写js)

在传递给砖石结构的选项末尾有一个额外的逗号(,)


在修复示例中的这些错误后,只需像Cryo在其回答中提到的那样再次运行Mashise代码…

尝试重新运行Mashise调用,以便在单击更改解决后重新调整页面:

$(document).ready(function(){
 $('.threadWrapper > .littleme').click(function() {
  $(this).next().toggle();
  $(this).toggle();
  $('.littleme').not(this).next().hide();
  $('.littleme').not(this).show();

  // re-run masonry
  $('#mainContent').masonry({
    columnWidth: 200, 
    itemSelector: '.threadWrapper:visible'
  });

  return false;
 }).next().hide();
});
编辑:查看Mashise文档,似乎Mashise将保存您的初始设置,因此您只需再次调用main方法。这也应该起作用:

$(document).ready(function(){
 $('.threadWrapper > .littleme').click(function() {
  $(this).next().toggle();
  $(this).toggle();
  $('.littleme').not(this).next().hide();
  $('.littleme').not(this).show();

  // re-run masonry
  $('#mainContent').masonry();

  return false;
 }).next().hide();
});

我也有一个开关,并不能让砌体重新加载的效果。 但当物品淡出(过滤)后,我确实让砖石重新装填


请参阅:

已经有一段时间了,但由于我在搜索其他内容时一直在问你的问题,所以我在这里添加了一个.reload函数。这对我有用:

        $(window).resize(function(){
            var wallWidth   = $wall.width();
            var width       = $(window).width();
            if ( width<700 ) {
                    $('.brick').css( 'width', wallWidth/1);
                    $wall.masonry( 'option', { columnWidth: wallWidth/1 });
                    $wall.masonry( 'reload' );
            } else if ( width>=700 && width<1024 ) {
                    $('.brick').css( 'width', wallWidth/2 - 1);
                    $wall.masonry( 'option', { columnWidth: wallWidth/2 });
                    $wall.masonry( 'reload' );
            } else if (width>=1024) {
                    $('.brick').css( 'width', wallWidth/3 - 1);
                    $wall.masonry( 'option', { columnWidth: wallWidth/3 });
                    $wall.masonry( 'reload' );
            }
        });
$(窗口)。调整大小(函数(){
var wallWidth=$wall.width();
变量宽度=$(窗口).width();
如果(宽度=700&&width=1024){
$('.brick').css('width',wallWidth/3-1);
$wall.Mashiness('option',{columnWidth:wallWidth/3});
$wall.砌石(‘重新加载’);
}
});

非常好。虽然有点不幸,IE仍处于90年代的淡出期。我尝试了一个超时,它工作正常,但这看起来更顺利。介意我看看你的结局吗?你能解释一下吗?第一次运行后,如何强制砖石再次运行?这在任何地方都有记录吗?嗯,我会使用德桑德罗最新的同位素,包括过滤。但是,如果您遵循我的链接并查看代码,您将看到我在哪里添加了过滤函数和超时