javascript - element.onclick not 在单击元素时不调用函数
问题描述
我正在动态构建一个模态。我想在这个模式中制作一些按钮来打开SubModal
. 按钮显示在 html 中,但单击这些按钮没有任何作用。这是我的代码。
const subtaskList = document.getElementById('subtaskList');
for (const subtaskIndex in task.subtasks) {
const subtaskButton = document.createElement('button');
subtaskButton.classList.add('taskModalSubtaskButton');
subtaskButton.onclick = () => {
openSubTaskModal(task.subtasks[subtaskIndex], task);
}
subtaskButton.innerText = task.subtasks[subtaskIndex].name;
subtaskList.appendChild(subtaskButton);
subtaskList.innerHTML += '<br>';
}
在进行故障排除时,我制作了一个数组来保存按钮并使用 console.log() 来查看它的元素。他们都有这个onclick
功能。我通过获取他们的类名而单击了开发控制台中的按钮,所以我知道这不是显示问题。我觉得我误解了一些东西,任何帮助将不胜感激。
解决方案
问题是subtaskList.innerHTML += '<br>';
改用它是个好主意subtaskList.appendChild(document.createElement("br"));
。
这是工作片段:
function doSomething(url) {
alert(url);
}
const subtaskList = document.getElementById('subtaskList');
for (var i = 0; i < 3; i++) {
const subtaskButton = document.createElement('button');
subtaskButton.classList.add('taskModalSubtaskButton');
subtaskButton.innerText = "name" + i;
subtaskButton.onclick = (function (url) {
return function () {
doSomething(url);
};
})("URL #" + i)
subtaskList.appendChild(subtaskButton);
subtaskList.appendChild(document.createElement("br"));
}
<div id="subtaskList"></div>
我还更改了一个位onclick
函数以将相应的索引发送到doSomething
函数
推荐阅读
- scala - 使用函数生成 Gatling 馈线
- c# - 调试 C# UWP 应用时未命中“WinRT 组件 DLL”中的断点
- php - Postman Transfer 开始延迟
- javascript - 在 JavaScript 中按文件名拖放排序文件
- javascript - JavaScript 将包含代码的字符串转换为对象
- windows-10 - Windows 功能卡在搜索所需文件时
- angular - 业力中的 lcov.info 文件,角度未生成
- snowflake-cloud-data-platform - 雪花复制命令在验证模式下失败
- python - 使用列表推导构建以列表为值的字典
- sql-server - 就像在内部连接上花费很长时间