javascript - 动态添加的功能无法正常工作 JavaScript
问题描述
我正在尝试创建一个由用户输入组成的表格,这些输入包括复选框。我有一个功能可以在单击框时做什么
function checkTheBox(t) {
var t;
if (array[t] == 0) {
array[t] = 1;
}
else {
array[t] = 0;
}
}
并将该功能添加到我使用的表的创建元素中
function add() {
var word = document.getElementById("text").value;
var tdt = document.createElement("td");
var tdc = document.createElement("td")
var node = document.createTextNode(word);
var checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.id = "cb";
tdc.addEventListener("click", ticker(0), false);
tdc.stopPropagation;
tdt.appendChild(node);
tdc.appendChild(checkbox);
var tr = document.createElement("tr");
tr.appendChild(tdt);
tr.appendChild(tdc);
var table = document.getElementById("vt");
table.appendChild(tr);
}
问题是,每当我单击“添加”按钮创建新元素时,它都会激活该功能,然后创建该元素,而当我单击它时,复选框什么也不做。
我首先使用 checkTheBox 函数,因为我读过的处理复选框的唯一其他方法是使用 PHP,我还没有深入研究。
解决方案
您正在ticker(0)
立即执行,而不是在单击 tdc 时告诉它执行。
这里...
tdc.addEventListener("click", ticker(0), false);
这会将执行结果分配给ticker(0)
单击事件处理程序。您可以将其包装在匿名函数中,以便稍后执行...
tdc.addEventListener("click", function() { ticker(0); }, false);
请查看此处的文档以获取一些示例...
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
在该页面上搜索“匿名函数”
推荐阅读
- html - 将引导范围滑块颜色更改为十六进制颜色?
- ios - os_log 在新 Xcode 13 的 Xcproject 旧版本中不起作用
- python - 删除 Matplotlib 绘图之间的水平空白
- variables - Compact-u16 - 这样做的目的是什么?
- python - 简单的时间序列线性回归
- excel - VBA For Loop - 如果行包含字符,则将某些输入添加到单元格?
- python - 如何断言成员调用?
- swift - AVSpeechUtterance 10% 步率变化
- postgresql - 将 psycopg2 查询结果写入 pyspark 数据帧
- php - SugarCRM - 使用 API v10 创建 CommentLog