Есть скрипт на jquery, который при нажатии на триггер (лейбл фильтра) после отрабатывания аякса скроллит до нужного якоря. Скрипт работает.
Но есть проблема - после того, как этот скрипт хотя бы раз отработал, то при использовании views infinite scroll он снова инициализируется, т.е. скроллит до якоря (начала списка)
'use strict';
Drupal.behaviors.map_behavior = {
attach: function (context, settings) {
$(".trigger__map").once().click(function(){
$(document).once().ajaxStop(function() {
$([document.documentElement, document.body]).animate({
scrollTop: $("#location").offset().top - 100
}, 1500);
console.log("Отрабатывает скрипт locationscroll");
});
console.log("Нажали на trigger карты");
});
}
};
})(Drupal, jQuery);
Инфинитскролл находится в одной вьюхе с фильтрами. Если отрабатывает аякс на этой же странице в соседней вьюхе, то повторного запука скрипта не происходит.
Подскажите, в чем может быть проблема?
Комментарии
У меня были подобный проблемы из-за once(). Пробуйте избавиться от once() и/или переписать код по другому
вместо
$(".trigger__map").once()
надо$(".trigger__map", context)