3

Dart 中有没有办法监听来自 javascript 库的事件?

例如,当有人释放滑块时,jqrangeslider http://ghusse.github.io/jQRangeSlider/包会发出 userValueChanged 事件。

通过 js/js.dart 包在 Dart 中监听该事件是否容易?

希望看到 Dart 中的一些监听器示例,它从 javascript 库中监听此类事件。

4

1 回答 1

4

感谢js 包,你可以处理几乎所有的 js 代码。这是以下 javascript 代码片段的 dart 版本:

$("#slider").bind("valuesChanged", function(e, data){
  console.log("Will be executed");
});

在飞镖中:

js.scoped((){
  js.context.jQuery("#slider").bind("valuesChanged", new js.Callback.many((e, data) {
    print("Will be executed");
  }));
});

请注意,我使用jQuery而不是$因为否则您会遇到dart2js的问题(请参阅issue 2265)。

基本上,当你在 JS 中使用回调函数时,你必须使用js.Callback.manyjs.Callback.once包装你的回调。有关更多详细信息,请参阅管理回调生命周期

于 2013-04-05T20:37:31.400 回答