2010-01-27 88 views
5

我有一个基本的切换开关,显示在关闭所有其他类似的div时点击div。这工作得很好,切换不是问题。见下文:jquery回调砌石插件

$(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(); 
}); 

我还利用了砌体撑着jQuery的,它组织horrizontally然后垂直所有选定的div元素。辉煌,适用于各种不同的div高度。见下:

$(function(){ 
    $('#mainContent').masonry({ 
    columnWidth: 200, 
    itemSelector: '.threadWrapper:visible', 
}); 
}); 

我想要做的是每当div展开或崩溃时重新组织布局。实际上触发.masonry命令作为初始.click函数的回调。这是不适合我的。适用于初学者的问题。

了解其目前在这里工作:kalpaitch.com

安德鲁

加比 - 谢谢你的语法检查,我很擅长这些起毛了,然后花费约半小时运行环视为他们。

Cyro - 这是完美的和有效的,我将在不久的将来使用它。我打算加入的是如何在show/hide /以动画速度切换它们(上面的代码相应地改变)的情况下实现这一点。然后砌石电话会在div展开之前触发(正如目前在kalpaitch.com上发生的那样)。非常感谢答案,但这样做肯定更容易。

回答

4

尝试重新运行砌筑调用回覆点击修改后的决心调整页面:

$(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(); 
}); 

编辑:看着似乎砌体将节省您的初始设置,所以你只需要再次调用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(); 
}); 
1

你有一个错误的道路,你包括masonry.js文件..

您使用js/jquery.masonry.js当它应该是JS/jquery.masonry.js(资本JS)

,你在有一个额外的逗号(,)你通过选项结束砖石..

后,你在你的榜样修复这些错误,只需要运行又像冷冻在他的回答中提到的砖石代码...

2

我也有一个切换,并且无法得到砖石重新加载的效果。 但是当物品淡出(过滤)时,我确实得到了石工来重新加载。

参见:http://jasondaydesign.com/masonry_demo/

+1

非常好。虽然有点不幸的IE仍然在90年代褪色。我试着用超时工作,但看起来更顺畅。介意我看到你最终结束了什么。 – kalpaitch 2010-06-05 02:43:59

+1

你能解释一下吗?第一次运行后,你如何迫使砌体再次运行?这是记录在任何地方? – BuddyJoe 2011-09-06 02:51:12

+0

那么,我会使用Desandro的最新 - 同位素,其中包括过滤。但是,如果您按照我的链接查看代码,则会看到我添加了过滤功能和超时的位置 – Jason 2011-09-08 14:57:58

0

这已经有一段时间,但因为我一直打你的问题,同时寻找其他的东西,我想在这里补充一点,砌体增加了.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'); 
      } 
     });