通过JQuery“on”在Dart中收听事件

时间:2013-04-24 14:12:54

标签: javascript jquery dart

我通过js interop在Dart中使用Bootstrap Modal对话框。除了收听自定义事件之外,所有工作都可以。我正在尝试使用以下代码收听“显示”事件:

js.scoped(() {
  js.context.jQuery("#myModal").on("shown", new js.Callback.once(() {
    print("Dialog Shown");         
  }));
});

但是,当事件被触发时,我得到以下Dart错误:

Class '() => dynamic' has no instance method 'call'.\n\nNoSuchMethodError : method not found: 'call'\nReceiver: Closure: (dynamic) => dynamic\nArguments: [Instance of 'Proxy']

任何想法我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:1)

您收到此错误,因为回调应该有一个参数(handler parameter of on documentation采用eventObject参数)。所以你的代码应该是:

js.context.jQuery("#myModal").on("shown", new js.Callback.many((eventObject) {
  print("Dialog Shown");
}));

另请注意使用js.Callback.many代替js.Callback.once。前者允许多次调用回调。