Dart HTML:清除 Button 上的 onClick 侦听器
Dart HTML: Clear onClick listeners on Button
是否有某种方法可以在 Dart HTML 中清除按钮上的 onClick 侦听器而不需要跟踪所有侦听器?
每次使某个 div 可见并且 onClick 侦听器附加到某些按钮时都会执行此代码,如果它被隐藏并再次显示,则会附加更多的 onClick 侦听器并且旧的 onClick 事件不是更长的有效期也被调用。
querySelectorAll("button.update-something").forEach((ButtonElement b) {
b.onClick.listen((e) {
// Do Stuff
});
}
有没有办法清除现有的 onClick 侦听器或覆盖现有的 onClick 侦听器而不必跟踪以前的 onClick 侦听器?
跟踪你的意思可能是
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);
}
是否有某种方法可以在 Dart HTML 中清除按钮上的 onClick 侦听器而不需要跟踪所有侦听器?
每次使某个 div 可见并且 onClick 侦听器附加到某些按钮时都会执行此代码,如果它被隐藏并再次显示,则会附加更多的 onClick 侦听器并且旧的 onClick 事件不是更长的有效期也被调用。
querySelectorAll("button.update-something").forEach((ButtonElement b) {
b.onClick.listen((e) {
// Do Stuff
});
}
有没有办法清除现有的 onClick 侦听器或覆盖现有的 onClick 侦听器而不必跟踪以前的 onClick 侦听器?
跟踪你的意思可能是
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);
}