3

私は石積み(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');   
        }
      }

関数ボックス()に1または2を送信するための2つのボタンがあります。問題は、「1」を送信しようとすると、if文が正しくロードされないことです。石積みは1列(OK)しか行いませんが、画像は同じですelse 文の幅と画像をもっと大きくする必要がある

どのようにできるのか ?

pd: 私の英語でごめんなさい、私はスペインから来ました!

4

1 に答える 1

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');   
        }
      }

そのコードを試してください、うまくいけばうまくいきます

于 2012-10-16T10:19:26.493 に答える