Dart,将onClick事件添加到动态添加的元素中

时间:2019-07-03 09:21:51

标签: dart dart-html

存在一个可以动态添加元素的页面,当前在添加元素时也会添加click事件。

//something triggers an element to be added
ButtonElement statusButton = ButtonElement();
statusButton.className = 'status';
statusButton.onClick.listen(doSomething);
div.children.add(statusButton);

这很好,但是我希望为所有将来的元素添加一个单击事件。

我尝试了以下操作,但没有成功。

ElementList<ButtonElement> statusButtons;
statusButtons = div.querySelectorAll('.status');
statusButtons.onClick.listen(doSomething);

如何使用querySelectorAll将侦听器添加到动态添加的元素中?

我是从jquery后台处理此问题的,所以在Dart中,向单个元素添加大量事件的相同问题也许不是问题,如果可以的话,是否可以建议编写上述代码?我希望将听众分开。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

void addClickEvents() {
  ElementList<ButtonElement> statusButtons = querySelectorAll('.status');

  for (ButtonElement button in statusButtons) {
    String dataListener = button.getAttribute('data-listener');

    if (dataListener != 'true') {
      button.setAttribute('data-listener', 'true');
      button.onClick.listen(printBtnName);
    }
  }
}

在DartPad上尝试:https://dartpad.dartlang.org/9221358f0ca1e73acc9d5dfc770ba443