为 oop 使用移除事件侦听器
Use remove event listener for oop
我有一个使用 Firebase 实时数据库更新内容的按钮。我使用一个按钮来更新我的每个内容。所以我的第一个更新工作正常,但是当我想更新第二个内容时,它会更新我以前的内容。我想在每次更新后删除该事件。这样,每个内容的更新都会正常工作。你能帮我弄清楚如何做到这一点吗?
这就是我的更新按钮的作用。更新后,我想去掉点击事件,直到再次点击。
addUpdatedTodoToFirebase(todoKey) {
console.log(todoKey) // key used for each todo
if (todoKey) {
this.updateTodo.addEventListener("click", () => {
firebase.database().ref(`users/${this.currentUser}`).child("todos").child(todoKey).update({
action: this.selectAction.value,
date: this.selectDate.value,
title: this.inputTitle.value,
description: this.inputDescription.value
})
})
}
}
如果您想从 DOM 中删除事件侦听器,您可以使用:
let listener = () => {
firebase.database().ref(`users/${this.currentUser}`).child("todos").child(todoKey).update({
action: this.selectAction.value,
date: this.selectDate.value,
title: this.inputTitle.value,
description: this.inputDescription.value
}).then(() => {
this.updateTodo.removeEventListener("click", listener);
});
})
this.updateTodo.addEventListener("click", listener);
一旦数据库更新完成,上述代码将删除侦听器。
我有一个使用 Firebase 实时数据库更新内容的按钮。我使用一个按钮来更新我的每个内容。所以我的第一个更新工作正常,但是当我想更新第二个内容时,它会更新我以前的内容。我想在每次更新后删除该事件。这样,每个内容的更新都会正常工作。你能帮我弄清楚如何做到这一点吗?
这就是我的更新按钮的作用。更新后,我想去掉点击事件,直到再次点击。
addUpdatedTodoToFirebase(todoKey) {
console.log(todoKey) // key used for each todo
if (todoKey) {
this.updateTodo.addEventListener("click", () => {
firebase.database().ref(`users/${this.currentUser}`).child("todos").child(todoKey).update({
action: this.selectAction.value,
date: this.selectDate.value,
title: this.inputTitle.value,
description: this.inputDescription.value
})
})
}
}
如果您想从 DOM 中删除事件侦听器,您可以使用:
let listener = () => {
firebase.database().ref(`users/${this.currentUser}`).child("todos").child(todoKey).update({
action: this.selectAction.value,
date: this.selectDate.value,
title: this.inputTitle.value,
description: this.inputDescription.value
}).then(() => {
this.updateTodo.removeEventListener("click", listener);
});
})
this.updateTodo.addEventListener("click", listener);
一旦数据库更新完成,上述代码将删除侦听器。