是否有某种方法可以清除Dart HTML中按钮上的onClick侦听器,并且不需要跟踪所有侦听器?
每当某个div可见并且onClick侦听器附加到某些按钮时执行此代码,如果它被隐藏并再次显示,则附加更多onClick侦听器并且旧的onClick事件不再有效也被称为。
querySelectorAll("button.update-something").forEach((ButtonElement b) {
b.onClick.listen((e) {
// Do Stuff
});
}
有没有办法清除现有的onClick侦听器或覆盖现有的onClick侦听器,而无需跟踪以前的onClick侦听器?
答案 0 :(得分:1)
跟踪你可能意味着
List<StreamSubscriptions> subscriptions = [];
querySelectorAll("button.update-something").forEach((ButtonElement b) {
subscriptions.add(b.onClick.listen((e) {
// Do Stuff
}));
}
我想这就是你要找的东西
querySelectorAll("button.update-something").forEach((ButtonElement b) {
b.addEventListener('click', clickHandler);
}
void clickHandler(e) {
// Do stuff
}
querySelectorAll("button.update-something").forEach((ButtonElement b) {
b.removeEventListener('click', clickHandler);
}