Наталия: правило для класса (который вы будете вешать на body, например) и media правило абсолютно никак не связаны, вы можете удалить media и иметь требуемый функционал.
К сожалению (для кого-то из нас), я придерживаюсь мнения, что основная функция тостера это обмен опытом. Поэтому я всё же стараюсь больше делиться опытом и отвечать на теоретические вопросы, чем решать за других их проблемы. К тому же, весь нужный материал у вас есть: по ссылке описан алгоритм как раз делающий то что вам нужно.
Технически все отвечающие правы, но по сути ошибка в том, что вы вообще не проверяете код, не занимаетесь дебагом, даже не проверяете существуют ли элементы которые вы собираетесь использовать.
В любом случае, сам масонри не контролирует количество колонок, это контролируете вы с помощью CSS, посмотрите в доки в раздел "Element sizing", последний параграф.
UPD: кажется нужно задавать также ширину самим элементам, не только сайзеру
BedOmar: тут вообще-то Q&A, а не фонд поддержки ленивых программистов: тут принято отвечать на теоретические вопросы, а не решать за других их проблемы.
Если под "чистым jQuery" вы подразумеваете использование только $-методов (то есть только нормализованных значений), то в примере Николая достаточно будет заменить "document.body.clientHeight" на выражение с использованием jQuery, которое посчитает высоту body. Обратитесь к документации jQuery за этим (или к гуглу). Клянусь девятью, в этом нет ничего сложного, вы управитесь за несколько минут.
Раз "раньше не было этого", то может у вас браузер обновился, или как-то незначительно поменялись условия работы скрипта, всяческие адреса, страница с которой работаете со скриптом, что угодно. Хром вообще в довольно неожиданных (хоть и оправданных) кейсах напоминает о безопасности.
А это полный текст ошибки? Дело в том, что как минимум Хром по дефолту блокирует доступ к localStorage в некоторых неожиданных случаях, этому посвящено несколько топиков в интернетах.
Вам уже ответили на этот вопрос, в приведённом примере jQuery используется только для удобства и кроссбраузерности, можете просто использовать алгоритм из примера. Там переписывать пара минут, если не меньше.
UPD: стоп, так если вы просите на чистом jQuery, то в том же примере как раз и есть jQuery, что ещё нужно-то?
Никита Кит: вы замечательный программист. Серьёзно. Нода - наше всё. Без ноды в 2017 году вообще не обойтись. Если приложение не на ноде, то оно не тру. Вы всё правильно поняли - нода единственное решение возникшей задачи.