Dart HTML:在Button上清除onClick监听器

时间:2015-08-30 11:42:01

标签: events onclick dart dart-html

是否有某种方法可以清除Dart HTML中按钮上的onClick侦听器,并且不需要跟踪所有侦听器?

每当某个div可见并且onClick侦听器附加到某些按钮时执行此代码,如果它被隐藏并再次显示,则附加更多onClick侦听器并且旧的onClick事件不再有效也被称为。

querySelectorAll("button.update-something").forEach((ButtonElement b) {
    b.onClick.listen((e) {
        // Do Stuff
    });
}

有没有办法清除现有的onClick侦听器或覆盖现有的onClick侦听器,而无需跟踪以前的onClick侦听器?

1 个答案:

答案 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);
}