如何删除我之前使用新 dart 库注册的事件的侦听器?
我用它来监听新库的事件:
element.onMouseMove.listen
这个的等效版本是什么?
element.on.mouseMove.remove
如何删除我之前使用新 dart 库注册的事件的侦听器?
我用它来监听新库的事件:
element.onMouseMove.listen
这个的等效版本是什么?
element.on.mouseMove.remove
element.onMouseMove.listen(...)
返回一个StreamSubscription。只需调用其cancel()方法即可停止接收事件。
除了 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);
}
当您将鼠标移到“点击我!”时,这会打印“已移动”。文本(来自标准飞镖示例)。单击时,它会停止。