2013-06-16 1 views
4

Итак, я использую масонство для создания «жидкого» макета на моем сайте, но теперь у меня возникла проблема с использованием методов скрытия и раскрытия.JQuery: метод кладки ('hide', element) с элементом jquery

В случае, я делаю этот вызов:

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

Как вы можете видеть, я использую $(this) сказать кладку, какой элемент, чтобы скрыть с помощью JQuery

Но, видимо, этот метод не работает с элементом jquery?

Сообщение об ошибке в моей консоли выглядит следующим образом:

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

Я попытался посмотреть в documentation но все это говорит о принятом типа:

$container.masonry('hide', items) 

items Type: Array of Masonry.Items

Что такое Masonry.Item Предпочитаемый быть? И как указать свой элемент как один?

ответ

4

Если вы прочтете документацию, вы найдете itemsarray из elements.

элементыType: Array of Masonry.Items

Попробуйте это,

var arr=new Array(); 
arr.push($(this)); 
$container.masonry('hide', arr); 
+0

Th anks! Он отлично скрывает мои объекты ... но потом ... Я пытаюсь использовать его коллегиальную «масонство» («раскрывать», обр.), Но теперь она возвращает ошибку «Uncaught TypeError: Object [object Object] не имеет метода 'show' " – XuxuBelezA

+1

Я закончил работу с использованием методов плагинов, и теперь я просто использую jquery standard .show() и .hide() и вызывая метод кладки ('layout') позже -.- – XuxuBelezA

+0

Но спасибо за помощь в любом случае – XuxuBelezA

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