триггер onchange для неупорядоченного списка

1

Я программирую мое расширение Chrome Extreme, являющееся новичком в Javascript, и у меня есть следующая проблема: я хочу выбрать область хэш-тега Twitter, которая является ul с li внутри, ожидая добавления нового li для вызова функции. Я не знаю, как сделать триггер, потому что ни один из них не работал:

//The <ul> from hashtag area:
var tl = document.getElementsByClassName('trend-items')[0];

//1.
tl.onchange = function(){
  doMyThings();
}

//2.
tl.addEventListener("change", function(){
  doMyThings();
});

Более того, когда я меняю экран, не выходя из Twitter (я имею в виду, попадая в профиль, например), мой код не выполняется.

Спасибо!

  • 2
    Нет событий onchange связанных с тегами ul .
  • 1
    Войдите в MutationObserver : developer.mozilla.org/en-US/docs/Web/API/MutationObserver
Показать ещё 2 комментария
Теги:
google-chrome-extension

1 ответ

0

UL нет события изменения, но вы можете достичь этого MutationObserver как следующим образом. Вставьте или удалите любой элемент li изнутри .trend-items вы увидите, что каждый раз функция doMyThings запускается.

<ul class="trend-items">
    <li>item one1</li>
    <li>item one2</li>
</ul>

var tl = document.getElementsByClassName('trend-items')[0];

var config = { childList: true };

var doMyThings = function(mutationsList) {
    console.log('UL item inseted/deleted');
};

var observer = new MutationObserver(doMyThings);

observer.observe(tl, config);
  • 0
    Спасибо за ответ! Я пробовал это решение, но оно не работает для меня. Когда хештеги загружаются динамически, они ничего не показывают на console.log.
  • 0
    Вы можете сделать что-нибудь внутри функции doMyThings (). Вы написали «Я не знаю, как сделать триггер», поэтому я показал вам, как вы можете выполнить триггер, когда li внутри ul вставляет или удаляет.

Ещё вопросы

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