我有一个名为'AAA.js'的js文件,这里有简单的代码:
var AAA = {
listenForMenuLayer: function () {
console.log("menu initiated");
$('.nav-menu').on('click', function() { console.log("menu clicked")});
}
init: function(){
this.listenForMenuLayer();
}
};
在飞镖中,我写的如下(使用'dart:js'):
js.context['AAA'].callMethod('init');
然后,当我运行它时,一切看起来都很好,“菜单启动”显示正确,这意味着'listenForMenuLayer'已启动,但是当点击'.nav-menu'时, 没有任何事情发生。 (我多次检查,没有拼写错误或者其他)
我的问题是:Dart可以接受这种外部JS事件的启动吗?或者我们应该重新编写这些JS活动,请提出建议,非常感谢。
更新 我发现如果我们像上面那样编写js代码,那么jquery将无法正常启动,这意味着所有以'$'开头的功能都将无法正常运行。
答案 0 :(得分:1)
伙计们,我将其更新为使用'包:js / js.dart';
@JS('AAA.init')
external void aInit();
然后在某些地方,只需简单地调用包括:
aInit();