不能给用EventListener 添加的按钮添加EventListener

It is not possible to addEventListener to the button added with the EventListener

我有两个函数可以通过单击一个按钮来重绘部分页面,每个函数在呈现后都应该向绘制的按钮添加一个事件监听器。

    showItem () {
        const Id = this.dataset.product_id;
        const ItemBlock = document.getElementById(Id)
        const Template = renderItemNormalView();
        const HTML = Template(ItemBlock.dataset);
        ItemBlock.innerHTML = HTML;
        const editBtn = ItemBlock.querySelector('.js-edit-item');
        editBtn.addEventListener('click', this.showItemEditor);
    }

    showItemEditor () {
        const id = this.dataset.product_id;
        const itemBlock = document.getElementById(id);
        const template = renderItemEditView();
        const HTML = template(itemBlock.dataset);
        itemBlock.innerHTML = HTML;
        const saveChanges = itemBlock.querySelector('.js-save-item-changes');
        saveChanges.addEventListener('click', this.showItem);
    }

第一次点击调用showItemEditor函数,渲染页面后showItem没有添加为onclick。我是 js 新手,所以我不明白问题可能是什么。

好吧,这很棘手,至少对我来说是这样。问题是,我的两个函数的 'this' 不是包含它们的 class,而是我试图放置 onclick 的按钮,所以表达式 'this.showItem' 和 'this.showItemEditor' 完全没有意义。我很惊讶 firefox 没有告诉我这件事。但我很高兴一切都结束了:)