JQuery Masonry - 宽度变量

时间:2012-10-16 10:15:09

标签: jquery jquery-masonry

我正在使用砌体(jquery)并且一切正常,但我正在选择“停用”砌体,我使用这个:

    function box(box_width) {
        if(box_width == 1) {
          $('#contenedor').masonry('option', { columnWidth: function() { return 550; }});
          $('#contenedor').masonry('reload');   
        }
        else {
          var gutter = 55;
          var min_width = 250;
          $('#contenedor').masonry('option', { 
            columnWidth: function( containerWidth ) {
              var num_of_boxes = (containerWidth/min_width | 0);
              var box_width = (((containerWidth - (num_of_boxes-1)*gutter)/num_of_boxes) | 0) ;
              if (containerWidth < min_width) {
                box_width = containerWidth;
              }
              $('.imagen').width(box_width);
              return box_width;
            }
          });

          $('#contenedor').masonry('reload');   
        }
      }

我有2个按钮将1或2发送到功能框(),问题是当尝试发送“1”时,if句子没有正确加载,砌体只做1列(OK)但是图像具有相同的else句子宽度,我需要做更大的图像

我该怎么办?

pd:对不起我的英语,我来自西班牙!

1 个答案:

答案 0 :(得分:0)

检查是否将整数或字符串传递给函数。你应该确保传递的值也是一个整数。

function box(box_width_str) {
        var box_width = parseInt(box_width_str);
        if(box_width == 1) {
          $('#contenedor').masonry('option', { columnWidth: function() { return 550; }});
          $('#contenedor').masonry('reload');   
        }
        else {
          var gutter = 55;
          var min_width = 250;
          $('#contenedor').masonry('option', { 
            columnWidth: function( containerWidth ) {
              var num_of_boxes = (containerWidth/min_width | 0);
              var box_width = (((containerWidth - (num_of_boxes-1)*gutter)/num_of_boxes) | 0) ;
              if (containerWidth < min_width) {
                box_width = containerWidth;
              }
              $('.imagen').width(box_width);
              return box_width;
            }
          });

          $('#contenedor').masonry('reload');   
        }
      }

尝试使用该代码,希望它能正常工作