Выполнение скрипта только один раз в mutationObserver

В моем магазине Shopify на страницах коллекции у меня включена пагинация. Я использую скрипт jquery для изменения текста всех тегов продаж. Сценарий очень хорошо выполняется на первой странице, но когда я перехожу на следующую страницу, я должен вспомнить его и использовать mutationObserver для обнаружения изменений в dom. Наблюдатель мутаций работает хорошо, но когда я добавляю свой скрипт для изменения тегов продаж новых добавленных узлов, он начинает рекурсивно зацикливаться, и страница перестает отвечать на запросы.

Код с наблюдателем мутации:

    var targetNode = document.getElementById('gf-grid');

    // Options for the observer (which mutations to observe)
    var config = { attributes: false, childList: true, subtree: true };

  // Callback function to execute when mutations are observed
    var callback = function(mutationsList, observer) {

         $('.product-inner').each(function () {
               var tag = $(this).find('span.sale');
                var oldPrice=$(this).find('.price-old').text(); 
                var ac = oldPrice.replace(/[, ]+/g, "").trim();
                var sd=parseInt(ac);
                var newPrice = $(this).find('.price-new').text(); 
                var az = newPrice.replace(/[, ]+/g, "").trim();
                var gz=parseInt(az);

                if (!isNaN(sd)){
                  var vvv = sd - gz;
                  var nval = vvv / sd;
                  var percentOff = Math.round(nval * 100);
                  $(tag).text(percentOff + "%");
                }

         });
         console.log(oldPrice);
         observer.disconnect();
      };

   // Create an observer instance linked to the callback function
   var observer = new MutationObserver(callback);

  // Start observing the target node for configured mutations
  observer.observe(targetNode, config);

0 ответов

Другие вопросы по тегам