Скрипт для изменения имени останавливается после динамического выбора

1

Мне нужно изменить текст в недоступном модуле в Adobe Business Catalyst, пока у меня есть следующее работающее, но после обновления параметра на экране сценарий не запускается снова. Как сделать его автоматическим обновлением/запуском?

    $(document).ready(function(){
$.fn.replaceText = function( search, replace, text_only ) {
  return this.each(function(){
    var node = this.firstChild,
      val,
      new_val,
      remove = [];
    if ( node ) {
      do {
        if ( node.nodeType === 3 ) {
          val = node.nodeValue;
          new_val = val.replace( search, replace );
          if ( new_val !== val ) {
            if ( !text_only && /</.test( new_val ) ) {
              $(node).before( new_val );
              remove.push( node );
            } else {
              node.nodeValue = new_val;
            }
          }
        }
      } while ( node = node.nextSibling );
    }
    remove.length && $(remove).remove();
  });
};
$("#shippingStateSpan").replaceText( "Destination State", "Do you have a VAT number?" );
});

Любая помощь будет оценена. благодаря

Теги:
rename
business-catalyst

1 ответ

0
Лучший ответ

Я предполагаю, что текст заменяется при изменении варианта с выбора на странице. Попробуй это:

$(document).ready(function() {
$.fn.replaceText = function(search, replace, text_only) {
    return this.each(function() {
        var node = this.firstChild,
            val,
            new_val,
            remove = [];
        if (node) {
            do {
                if (node.nodeType === 3) {
                    val = node.nodeValue;
                    new_val = val.replace(search, replace);
                    if (new_val !== val) {
                        if (!text_only && /</.test(new_val)) {
                            $(node).before(new_val);
                            remove.push(node);
                        } else {
                            node.nodeValue = new_val;
                        }
                    }
                }
            } while (node = node.nextSibling);
        }
        remove.length && $(remove).remove();
    });
};
var refreshIds = setInterval('$("#shippingStateSpan").replaceText( "Destination State", "Do you have a VAT number?" )', 300);
});
  • 0
    Пришлось изменить его для государства назначения в отличие от вариантов доставки, но теперь он работает! Спасибо вам за помощь!
  • 0
    Извините - забыл, что я изменил несколько пунктов, чтобы проверить себя перед тем, как дать вам решение, которое я обновлю в соответствии с вашим вопросом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню