Function onAndCancel(EventTarget element, String event, dynamic callback(arg))

Source

Function onAndCancel(EventTarget element, String event, callback(arg)) {
  // due to https://code.google.com/p/dart/issues/detail?id=17406
  // addEventListener misses zones so we use element.on.
  var subscription = element.on[event].listen(callback);
  return subscription.cancel;
}