@lagudal

Как сделать чтобы код срабатывал уже при первом событии?

Приветствую,
такой вопрос -
есть страница конфигурируемого товара, вот она (возможно доступна только под ЕС айпишником)
По умолчанию ни одна опция не выбрана.
Если выбрать хотя бы одну любую опцию, внизу под кнопкой добавления в корзину появляется таблица с tier prices.
Так и должно быть, это работает правильно.
Но после того, как таблица становится видимой и не пустой, должен измениться варнинг со звездочкой - * - вот этот текст - * Select required options to see correctly prices and tier prices - должен скрыться и открыться Tier Prices:.

Это начинает срабатывать, если сначала выбрать какую-либо опцию, потом снова установить ее как не выбранную, а потом выбрать ее еще раз. Т.е. почему то при первом событии не срабатывает.

вот собственно код -
require(['jquery'],function($){
$(document).ready(function() {
respondToVisibility = function(element, callback) {
  var options = {
    root: document.documentElement
  }
  var observer = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
      callback(entry.intersectionRatio > 0);
    });
  }, options);

  observer.observe(element);
}
respondToVisibility($("div[data-role='tier-price-block']")[0], visible => {
  if((visible) && ($.trim($("div[data-role='tier-price-block']").html()).length > 0 )){
      $('.price-tier_caption').show();
    $('.price-tier_warning').hide();
   }
   else {
       $('.price-tier_caption').hide();
    $('.price-tier_warning').show();
   }
});
});
});

Если я правильно понимаю, то при первом событитии - первом выборе опции - условие еще не соблюдено.
Как сделать чтобы срабатывало при первом событии?
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы