onchange触发无序列表

时间:2018-05-09 15:25:43

标签: javascript google-chrome-extension

我正在编写我的第一个使用Javascript初学者的Chrome扩展程序,我有下一个问题: 我想选择Twitter的hashtag区域,这是一个带有li的ul,等待添加一个新的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的情况下更改屏幕(我的意思是,例如进入个人资料)时,我的代码无法执行。

谢谢!

1 个答案:

答案 0 :(得分: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);