event-handling - 按名称动态添加事件监听器

标签 event-handling dart

如何将此函数从 Javascript 翻译为 Dart?

function addEvtListener(Element el, evtName, fn) {
    return el.addEventListener ? el.addEventListener(evtName, fn, false) : el.attachEvent('on' + evtName, fn);
}

主要问题是事件名称是动态的。我显然可以打电话:

el.onClick.listen((event) => fn(event));

如果 evtName 是点击事件。但是Dart中有这样的方法吗?

el.on("click").listen(event) => fn(event));

最佳答案

Events 类文档概述了按名称监听事件的不同方法:http://api.dartlang.org/docs/releases/latest/dart_html/Events.html

您会发现两者都可以做到:

new EventStreamProvider(evtName).forTaget(el).listen(fn);

el.on[evtName].listen(fn);

关于event-handling - 按名称动态添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17255407/

相关文章:

javascript - Flotr2 - 安全销毁图形元素以及与该元素绑定(bind)的所有事件

jquery - 基于 URL 运行 jQuery 的事件处理程序

c++ - 为什么 Boost.Asio 不支持基于事件的接口(interface)?

ios - flutter 错误无效的 `Podfile`文件: no implicit conversion of nil into String.我通过讨论搜索但我似乎无法解决问题

Flutter/Dart 返回 '_Future<String>' 的实例而不是实际的字符串值

java - 在ActionListener的actionPerformed()方法中暂停执行代码

cocoa - NSWindowController 的红色关闭按钮的事件

flutter - Dart 不必要的_this lint/样式检查的基本原理

flutter - 定义列表和 map 的不同方法( Dart/flutter 打)

dart - Dart Polymer 模板中的数字 for 循环