存在一个可以动态添加元素的页面,当前在添加元素时也会添加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中,向单个元素添加大量事件的相同问题也许不是问题,如果可以的话,是否可以建议编写上述代码?我希望将听众分开。
答案 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