Как отключиться от MutationObserver, если дочерний элемент, который вы проверяете, никогда не генерируется - PullRequest
1 голос
/ 27 марта 2020

У меня есть этот код, который ждет, пока специфика c HTMLElement загрузится внутри некоторого родительского элемента. Я добился этого с помощью MutationObserver, который срабатывает каждый раз, когда childList родительского элемента изменяется. Когда элемент создан, он выделяет весь текст внутри него и отключает наблюдателя. Но что, если элемент никогда не создается? Как лучше всего отключить наблюдателя?

текущий код:

selectTextOnEdit(cell: HTMLTableCellElement) {
    const observer = new MutationObserver(mutations => {
      mutations.forEach(mutation => {
        if (mutation.addedNodes && mutation.addedNodes.length > 0) {
          const inputElement = cell.querySelector('input');
          if (inputElement) {
            inputElement.select();
            observer.disconnect();
          }
        }
      });
    });
    observer.observe(cell, {childList: true});
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...