如何删除我之前使用新dart库注册的事件的侦听器?
我正在使用它来监听新库的事件:
element.onMouseMove.listen
这个的等效版本是什么?
element.on.mouseMove.remove
答案 0 :(得分:14)
除了Alexandre的回答,代码中的具体示例如下所示:
import 'dart:html';
void main() {
var listener = (e) => print("Moved");
var element = query("#text");
var streamsub = element.onMouseMove.listen(listener); // <--- add the listener
var reverseText= (Event event) {
var text = query("#text").text;
var buffer = new StringBuffer();
for (int i = text.length - 1; i >= 0; i--) {
buffer.add(text[i]);
}
query("#text").text = buffer.toString();
streamsub.cancel(); // <---- stop listening
};
element
..text = "Click me!"
..onClick.listen(reverseText);
}
这打印&#34;移动&#34;当你将鼠标移到&#34;点击我!&#34;文字(来自标准飞镖样本)。单击时,它会停止。
答案 1 :(得分:12)
element.onMouseMove.listen(...)
会返回StreamSubscription。只需调用其cancel()方法即可停止接收事件。