[英]What is a correct way to structure adding event listeners?
我正在做一个小型个人项目,我使用 vanilla JS 来控制前端的所有内容。 我有 5 条不同的路线和一条app.js
。 这就是我当前添加事件侦听器的方式:
function deleteTopic() {
let btn = document.querySelector('.button-delete-topic')
if (btn) {
btn.addEventListener('click', e => {
////////////do something
})
}
}
它运作良好,但我担心这个 function 在所有路线上都被调用,即使button-delete-topic
仅在一条路线上。 以这种方式添加事件侦听器是一个坏主意吗? 为每条路线添加单独的*.js
文件会更好吗? 谢谢你的任何建议。
我会创建一个实用程序来处理这些事件。
document.addEventListener('DOMContentLoaded', function (ev) {
var button = document.getElementsByTagName("button");
button.addEventListener("click", function () {
console.log(this.getAttribute('data-action'));
// Check if data-action exists or do something with action
});
}, true);
然后,您可以使用data-attributes
来传递数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.