删除切换类

时间:2017-03-30 02:34:41

标签: javascript jquery toggle masonry

这是我第一次在这里问一个问题所以让我们看看它是怎么回事!我正在为我的一个网站(allworkedup.org)使用Masonry网格布局,但无法弄清楚切换类问题。基本上,我希望一次只打开一个网格项,并且一旦我点击另一个网格项,该网格项就会消失。以下是我的代码。谢谢!

var $grid = $('.grid').masonry({
  itemSelector: '.grid-item',
  columnWidth: '.grid-sizer',
  percentPosition: true

  });


  $grid.on( 'click', '.grid-item', function() {
  // change size of item via class
  $( this ).toggleClass('grid-item--gigante');
  // trigger layout
  $grid.masonry();
  //
  });

  $grid.on( 'layoutComplete', function( event, laidOutItems ) {
  console.log( 'Masonry layout complete with ' + laidOutItems.length + '   items' );
  });



// init Masonry
var $grid = $('.grid').masonry({
  // options...
});
// layout Masonry after each image loads
$grid.imagesLoaded().progress( function() {
  $grid.masonry('layout');
});

1 个答案:

答案 0 :(得分:1)

不是使用切换类功能(需要用户点击要打开的项目然后再次关闭它),您可以使用以下内容:

$grid.on( 'click', '.grid-item', function() {
    // Close all other open items and open the one that was just clicked
    $( this ).siblings().removeClass('grid-item--gigante');
    $( this ).addClass('grid-item--gigante');
    // trigger layout
    $grid.masonry();
});

这样,当用户点击其中一个网格项时,该项目的所有兄弟节点(以及所有其他框)都将关闭,而单击的那个兄弟节点将会扩展。