Точка маршрута не распознана в Ajax-загруженном контенте - PullRequest
1 голос
/ 02 августа 2011

Я загружаю страницу в div. Я также пытаюсь установить путевую точку, чтобы, когда пользователь прокручивает страницу вниз, меню меняло цвета.

Проблема, с которой я столкнулся, заключается в том, что новая высота div не распознается браузером после загрузки содержимого ajax.

Вот что у меня есть:

$(".cta").live('click', function () {
    $('#faq').load('about-us/faqs/index.html'),
    function () {
        $("#faq").waypoint(function (event, direction) {
            if (direction === 'up') {
                $("#siteNav li a").removeClass("siteNavSelected");
                $("#siteNav li.nav3 a").addClass("siteNavSelected");
            }
        }, {
            offset: function () {
                return $.waypoints('viewportHeight') - $("#faq").outerHeight();
            }

        });
    }
    return false;
});

Есть идеи? Спасибо.

Ответы [ 2 ]

1 голос
/ 04 июля 2013

Использование $.waypoints('refresh');, из документации:

Это приведет к пересчету триггерной точки каждой путевой точки на основе ее опции смещения. Он вызывается автоматически при каждом изменении размера окна или добавлении новых путевых точек. Если ваш проект меняет DOM или макет страницы, не выполняя одно из этих действий, вы можете вызвать его вручную.

0 голосов
/ 24 октября 2012

Я не знаком с внутренними особенностями плагина waypoint, но вы также можете привязать событие прокрутки и затем зафиксировать значение .scrollTop(). Выглядело бы примерно так:

$(document).bind('scroll', function(event) {        
    var scrollTop = $(window).scrollTop();
    if (scrollTop < 1000 && $('siteNav li').hasClass('styleA')) { return; }
    else { 
        $('siteNav li').removeClass('styleB');
        $('siteNav li').addClass('styleA');
    }
    if (scrollTop > 1000 && $('siteNav li').hasClass('styleB')) { return; }
    else {
        $('siteNav li').removeClass('styleA');
        $('siteNav li').addClass('styleB');
    }
});

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

...