Google Chrome扩展程序无法查看点击次数?

时间:2017-04-26 02:05:29

标签: javascript google-chrome google-chrome-extension addeventlistener

我无法让任何这些事件侦听器触发任何函数。

以下是我的Chrome扩展程序。触发警报但没有一个侦听器工作。元素是动态创建的,所以我不确定这是否有所作为。

document.addEventListener('DOMContentLoaded', function() {
    document.querySelector('.overlay_show').addEventListener('click', alertit);
    document.querySelector('.overlay_hide').addEventListener('click', alertit);
});

元素html

`<a class='overlay_hide' ><i>Hide<i/></a>`;

`

任何想法都会有所帮助吗?

1 个答案:

答案 0 :(得分:1)

  

元素是动态创建的,所以我不确定这是否会产生影响。

确实如此。如果在之前添加侦听器,则添加元素,它将无法工作。执行document.querySelector('.overlay_show')时,它会选择具有类.overlay_show的第一个元素,并在其上添加一个侦听器。的完成

所以,你有2个解决方案:

添加元素

之后添加侦听器

但这意味着你必须每次这样做

听取<body>点击并使用e.target

document.body.addEventListener('click', function (e) {
    if (e.target.classList.contains('overlay_show')
        || e.target.classList.contains('overlay_hide')) {
        alertit()
    }
}