为什么这不起作用的任何想法。

单击时是按钮工作一次 - 否按钮不起作用

function $(x) {
    return document.getElementById(x);
}

var glob = 0;

function new_index() {
    glob += 1;
    return "d" + glob;
}

function play() {
    say("Hello is JS Fun?");
    response("No",
        function() {
            say("Oh dear")
        });
    response("Yes",
        function() {
            say("Great:");
        });
}

function say(x) {
    $("txt").innerHTML += x;
}

function response(Txt, Fun) {
    var n = new_index();
    var s = "<button id='" + n + "'>" + Txt + "</button>";
    say(s);
    var xx = $(n);
    // xx.onclick=Fun;
    xx.addEventListener("click", Fun);
}

play();
<div id="txt"></div>

最佳答案

这是因为每次设置innerHTML 时,它不会像您想象的那样添加,而是将innerHTML 设置为一个新值,然后删除带有旧事件监听器的旧元素。

关于javascript - 事件监听器不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39469863/

10-16 20:11