javascript - 如何下载用户创建的元素并给它一个事件?
问题描述
如何下载用户创建的元素并给它一个事件?
function tasks(e) {
inputV = input.value;
e.preventDefault();
if (inputV !== "") {
const ul = document.querySelector('.tasks-list');
let li = document.createElement('li');
li.innerHTML += inputV /*`<button class="deleteTasks">Usuń</button>`*/;
ul.appendChild(li);
let btnDell = document.createElement('button');
btnDell.setAttribute("id", "deleteTasks");
btnDell.innerHTML += 'usuń';
li.appendChild(btnDell);
input.value = "";
}
};
add.addEventListener('click', tasks);
解决方案
创建新列表元素后,您可以附加自定义事件处理程序。
function tasks(e) {
inputV = input.value;
e.preventDefault();
if (inputV !== "") {
const ul = document.querySelector('.tasks-list');
let li = document.createElement('li');
li.innerHTML += inputV /*`<button class="deleteTasks">Usuń</button>`*/;
let node = ul.appendChild(li).cloneNode(true);
node.addEventListener('click',(e)=>{
e.preventDefault();
let target = e.target;
// put your logic here to execut on target after it being clicked
},false);
let btnDell = document.createElement('button');
btnDell.setAttribute("id", "deleteTasks");
btnDell.innerHTML += 'usuń';
li.appendChild(btnDell);
input.value = "";
}
};
add.addEventListener('click', tasks);
编辑 我在阅读您的评论后正在编辑此内容,请编辑您的问题而不是发表评论以澄清您的问题。我的假设是你想要这个功能。
但是似乎您的删除逻辑不会在新创建的项目上执行,如果是这种情况,请尝试在每个可删除项上设置一个类属性li
并在此基础上编写 btnDell querySelectorAll
,以便在执行时获取所有元素。
推荐阅读
- python - 在 xlsxwriter 模块中使 for 循环动态化
- jenkins - 引诱詹金斯报告不显示步骤中的“设置”和“拆卸”方法
- python - Python函数没有传入,openCV
- certificate - c#:如何使用 CERTENROLLLib.CX509PrivateKey 创建密钥大小为 168 的证书?
- windows - 无法推送到 Windows Server 2016 上的 git 存储库
- android - 添加时获取 java.lang.NullPointerException
我资源的要素 - python - 将重复的行保存在单独的数据框中
- java - 使用流和 lambda 美化 for 循环
- python - 在 Spyder 中更改 python 版本
- watson-discovery - 将先前注释的文档导入 IBM Knowledge Studio