nepster-web
@nepster-web

Как работать с кэшем в Jquery?

Дали совет воспользоваться кешем в jQuery, до этого никогда с ним не работал, поэтому возникли вопросы.
К примеру у меня есть вот такой код:
// Прилипающий элемент
    var sticky = $('.sticky');

    var defPos = sticky.css('position'),
        defWidth = sticky.css('width'),
        defTop = sticky.offset().top;

    $(window).on('scroll', function () {
        if (defTop - ($('body').scrollTop() || $('html').scrollTop()) <= 0) {
            sticky.addClass("sticky-play");
            sticky.css({
                'width': defWidth
            });
        } else {
            sticky.removeClass("sticky-play");
        }
    });


Собственно каждый раз при движении скролла будет вызываться анонимная функция и как я понял, что то будет кажды раз происходить с тегом body, и это дело нужно закешировать.

Про кеширование событий я ничего не нашел, видимо не правильно понял тему, объясните пожалуйста как правильно кешировать и в каких случаях это нужно ?
  • Вопрос задан
  • 2249 просмотров
Пригласить эксперта
Ответы на вопрос 1
DaFive
@DaFive
С тегом body ничего не будет происходить, у них (у body или html) проверяется позиция scrollTop(), а затем элементу sticky добавляется класс sticky-play и ставится через css ширина defWidth. Или удаляется класс.
Если уж очень принципиально, можете проверить наличие или отсутствие класса у элемента sticky. К примеру
if(sticky.hasClass("sticky-play")) { сделать то что нужно };
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы