javascript - HTML 按钮无响应,控制台未注册事件
问题描述
正在开发一个简单的待办事项应用程序,但删除按钮有问题。当我单击时,浏览器控制台甚至没有注册事件。超级困惑在这里做什么。我已经浏览了 index.html 中的所有代码以及 app.py 代码,我无法弄清楚为什么它甚至没有在浏览器中注册发生的事情,即使它没有导致我想要的它要做。基本上只是不确定如何调试我猜甚至没有注册为现有的东西?
我假设这是 HTML 中的问题,但以防万一,我也包括了相关的 python 代码。
谢谢!
索引.html
<ul id="todos">
{% for d in data %}
<li><input class="check-completed" data-id="{{ d.id }}"
type="checkbox" {% if d.completed %} checked {% endif %}> {{ d.description }}
<button class="li button deletebutton" data-id="{{ d.id }}">✗</button> <!-- ✗ is HTML for an X-->
</li>
{% endfor %}
</ul>
index.html 中的脚本:
const deletebtns = document.querySelectorAll('.deletebutton');
for (let i = 0; i < deletebtns.length; i++) {
const deletebutton = deletebtns[i];
deletebutton.onclick = function(e) {
const todoId = e.target.dataset['id'];
fetch('/todos/' + todoId, {
method: 'DELETE',
})
}
}
}
应用程序.py:
@app.route('/todos/<todo_id>', methods=['DELETE'])
def delete_todo(todo_id):
try:
Todo.query.filter_by(id=todo_id).delete()
db.session.delete(todo)
db.session.commit()
except:
db.session.rollback()
finally:
db.session.close()
return redirect(url_for('index'))
解决方案
推荐阅读
- python-3.x - 如何修复“在解释器中至少有 1 个以 numpy 数组或切片的形式引用的内部数据”并在 tf.lite 上运行推理
- azure-devops - 无法在 Azure DevOps 中触发拉取请求发布
- c# - 如何更改我的代码以使用后台工作人员而不是后台线程
- f# - 如何反射 MakeUnion 三级类型?
- python - 如何创建一个可变时间函数,我可以在其中选择 python 中的时间(即不是实际的当前时间)?
- c++ - Qt 中的自定义小部件,如 QFrame
- sonos - 不从文件开头开始的有声读物章节
- javascript - 如何将html表格单元格值传递给javascript变量?
- ios - 获取键盘框架时的问题
- java - 资源类型的 JNDI 查找失败:javax.sql.DataSource