Sergey Goryachev: а я кажется нашёл проблему - в этом фидле виндовый хром 54 говорит "Uncaught SyntaxError: Invalid or unexpected token" на первом же символе
То есть вы убрали dataType, вывели в консоль ответ запроса и увидели что это ваш JSON. Если всё так, то что тогда значит "получить его значения я всё равно не могу" ?
Мне кажется вам не помогут: у вас в тегах json, gulp, npm, jade, и вы просите чтобы вам переписали найденный в интернетах скрипт. Проще наверное было бы самому разобраться. Или хотя бы начать разбираться и дополнить вопрос пояснением типа "начал разбираться, возникла такая-то проблема, погуглил, почитал доку, не помогло. Что делать?", тогда шансы получить ответ сильно возрастут.
Я на самом деле ничего не понял из того что вы сказали. Что нужно - банально применять этот алгоритм к разным группам элементов? Если да, то достаточно выделить алгоритм в метод для $, и всё.
Денис Букреев: то есть не должен, но в твоём случае проблема из-за этого. Также можно использовать собственно анимацию, тоже приятней будет, @keyframes
А можно посмотреть? Хотя бы что-нибудь, скрины например. Я как раз недавно делал подобное, только я всё же запилил этот функционал во встроенный редактор, поэтому интересно.
Не ради флейма, а только справедливости ради хочу заметить, что
1) не дата теги, а скорее дата атрибуты,
2) приведённый вами пример использования .data() - это вообще достаточно вакуумный случай, потому что такое можно делать только если в проекте более нигде не используется дата байндинга который осуществляет .data() и только для решения таких вот простеньких, мелких задач. Хотя бы потому что информация, которую сохраняет .data(), является для $ более приоритетной: при наличии у элемента el атрибута data-test и data-записи c ключом test, el.data('test') вернёт вам значение data-записи, а не атрибута. По этой же причине вызов el.data('key', value) не изменит/создаст атрибут 'data-key', а сделает data-запись, доступ к которой будет возможен только с использованием этого метода.
Поэтому используя .attr() для доступа к data-атрибутам, вы все же в значительной степени снижаете уровень энтропии логики вашего кода)
pqgg7nwkd4: погодите, а вы уверены что обновление localStorage инициирует полную его перезапись в хранилище? Мне кажется было бы логично предположить, что во время работы браузера localStorage хранится в памяти, и перезаписывается только по выключению браузера/завершению сессии или как-то так.
Я весь ваш пример локально воспроизвел, всё ок, никаких проблем.