2013-02-28 2 views
1

У меня есть страница, которая использует ленивый плагин загрузки для загрузки кучи небольших изображений. У меня есть набор фильтров, которые удаляют элементы и добавляют элементы. Поэтому каждый раз, когда фильтр нажимается, я называю ленивую нагрузку на все мои элементы img. Когда я это делаю, он начинает замедлять страницу, и каждый раз я вызываю $ («img»). Lazyload(); он становится более увязшим. Я попытался использовать unbind, прежде чем элементы будут удалены, так что новый, добавляемый при добавлении, не имеет y-событий, но этот стиль ничего не сделал.Lazy load jquery plugin slowing down

Кто-нибудь знает, почему это может случиться. Мой источник кода огромен, поэтому я не могу взять один элемент для публикации. Поэтому, надеясь, что кто-то столкнется с этим вопросом раньше и может иметь представление о том, почему это происходит.

Еще одна проблема: мне нужно вызвать $ (window) .trigger ("scroll"); после вызова $ ("img"). lazyload(); для загрузки изображений. Это нормально.

+0

Без кода мы не можем много сделать. Попробуйте создать пример с только соответствующими битами ... вам не обязательно предоставлять его ВСЕ, просто общую логику, которая касается вашей проблемы. – ken

ответ

0

У меня была аналогичная проблема, которую я смог выяснить сегодня. Смотрите мое решение на мой вопрос здесь:

jQuery LazyLoad plugin slowing down div scrolling

быстрый ответ, хотя это LazyLoad связывает слушатель событий каждый раз, когда вы запускаете его на контейнере, чтобы проверить свитка. К сожалению, это не отменит это событие, прежде чем переустанавливать его, и поэтому, когда вы запускаете lazyload снова и снова, вы добавите тонны прослушивателей прокрутки, добавленных в контейнер. Быстрое решение состоит в .unbind ('scroll') на вашем контейнере, прежде чем снова вызвать ленивую загрузку. Ссылка выше имеет более глубокий ответ и некоторые скрипты, чтобы увидеть разницу.

Смежные вопросы