首页 > 解决方案 > Onclick不适用于动态呈现html

问题描述

我想创建一种方法来在 div 中呈现新按钮,然后在其上添加一些单击事件。这是我的代码:

let create = () => {
    function abc() {
        alert("abc")
    }

    let t = document.querySelectorAll(".here")[0];
    t.innerHTML = "<button onclick='abc()'>click me 2</button>";
}

document.querySelector("#clickme").addEventListener("click", () => {
    create()
})
<button id="clickme">
    click me
</button>

<div class="here">
    a
</div>

点击“点击我2”,为什么我abc()的没有定义?

标签: javascripthtml

解决方案


点击“click me 2”,为什么我的 abc() 没有定义?

因为属性事件处理程序在全局范围内查找方法,而您的abc方法不在全局范围内,所以它在create


推荐阅读