我想在Polymer模板中的所有输入字段中添加onclick和onchange事件。
有没有办法通过代码一次性添加事件给所有人? 我想避免将onclick和onchange属性逐个添加到输入字段。
我认为这一定是可能的,但我正在搞乱代码,我无法得到它。
提前致谢
答案 0 :(得分:1)
这与Listen to events on ElementList with no explicit accessor非常相似。您可能需要一个不同的选择器,但您的问题不包含足够的信息来了解可能的内容。也许:
List<StreamSubscription> _clickSubscriptions = <StreamSubscription>[];
List<StreamSubscription> _changeSubscriptions = <StreamSubscription>[];
this.shadowRoot.querySelectorAll("input")
.forEach((e) {
_clickSubscriptions.add(e.on["on-click"].listen((event) {
print("Event Triggered");
}));
_changeSubscriptions.add(e.on["on-change"].listen((event) {
print("Event Triggered");
}));
});
取消订阅使用
_clickSubscriptions.forEach((s) => s.cancel());
_changeSubscriptions.forEach((s) => s.cancel());
另见How can you assign mutliple listeners to a single StreamSubscription?