4

因此,我正在使用 Masonry 在我的站点中制作“流动”布局,但现在我遇到了一个涉及其隐藏和显示方法的问题。

在一个事件中,我正在打这个电话:

$container.masonry('hide', $(this));

如您所见,我$(this)用来告诉砌体通过 jquery 隐藏什么元素

但显然,这种方法不适用于 jquery 元素?

我的控制台中的错误消息如下所示:

Uncaught TypeError: Object #<HTMLElement> has no method 'hide' (masonry.pkgd.min.js:9)

我尝试查看文档,但它所说的关于接受的类型的全部内容是:

$container.masonry( 'hide', items )

项目类型:Masonry.Items数组

Masonry.Item应该是什么?以及如何将我的元素表示为一个?

4

2 回答 2

4

如果您阅读文档,那么您会items发现array.elements

项目 Type: Array of Masonry.Items

尝试这个,

var arr=new Array();
arr.push($(this));
$container.masonry('hide', arr); 
于 2013-06-16T07:40:56.683 回答
0

添加此功能

// FIX para Masonry
// goes through all children again and gets bricks in proper order
Outlayer.prototype.publicItemize = function() {
  // collection of item elements
  return this._itemize( this.element.children );
};

现在你可以做到这一点

// Get correcto list in correct format
var _list = container.masonry("publicItemize");
// Actions on "_list"
// hide elements
container.masonry("hide", _list);
于 2015-10-01T08:18:59.467 回答