javascript - 在方法中添加 HTML Javascript 事件处理

标签 javascript html events event-handling dom-events

var p=0;
function addLine() {
    var tb = document.getElementById("tb");
    var row = document.createElement("TR");
    var td1 = document.createElement("TD");
    var td2 = document.createElement("TD");
    var td3 = document.createElement("TD");
    var textF = document.createElement("INPUT");
    textF.value = "Add image URL";
    td1.appendChild(textF);
    var bt = document.createElement("BUTTON");
    bt.id = p;
    p++;
    var text = document.createTextNode("Load Image");
    td2.appendChild(bt);
    bt.appendChild(text);
    var img = document.createElement("IMG");
    img.alt = "No image loaded yet";
    td3.appendChild(img);
    row.appendChild(td1);
    row.appendChild(td2);
    row.appendChild(td3);
    tb.appendChild(row);
    row.children[1].children[0].onClick = load();
}

function load() {
        console.log("in method");
        //var bt = window.event.target;
        var i = 0;
        var tb = document.getElementById("tb");
        tb.rows[i].cells[2].children[0].alt = "Image not found";
        tb.rows[i].cells[2].children[0].src = tb.rows[i].cells[0].children[0].value;
}

我想为生成的每个按钮添加一个事件处理程序,我也尝试使用addEventListener(),但似乎没有任何效果。由于某种原因,当激活 addLine() 方法时,我在“方法中”得到控制台输出。我还想要由事件创建的事件对象来获取目标。

最佳答案

问题是事件区分大小写,因此需要全部小写。您正在调用该函数并将其返回的内容分配给事件监听器。

所以你需要将其全部小写并删除 ()

row.children[1].children[0].onclick = load;

bt.addEventistener("click", load);

关于javascript - 在方法中添加 HTML Javascript 事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44520857/

相关文章:

javascript - 在 React 中映射异步数据的最佳方式

javascript - Kendo UI 网格的所有元素都显示在 Kendo 控制台上,但网格未渲染

events - 事件聚合器、命令和请求/响应之间的区别

c# - 如何定义事件然后在事件发生时启动委托(delegate)

.net - 方法 '' 无法处理事件 '',因为它们没有兼容的签名

javascript - 使用 jQuery/JavaScript 加载页面时使元素消失

javascript - 使用 JavaScript 的随机十六进制颜色

javascript - 使用 Jquery 检查输入中的空格字符

html - 使用位置 :absolute within a three levels menu to display the last two levels on the right of each other avoiding stack them on each other

javascript - 当打印窗口打开时,我的 Angular 应用程序卡住