如果原始JS有许多功能,dart如何启动它们?

如果原始JS有许多功能,dart如何启动它们?,dart,dart-js-interop,Dart,Dart Js Interop,经过几轮调查,我发现如下情况没有明确答案: 我有一个名为“AAA.js”的js文件,里面有如下简单代码: var AAA = { listenForMenuLayer: function () { console.log("menu initiated"); $('.nav-menu').on('click', function() { console.log("menu clicked")}); }

经过几轮调查,我发现如下情况没有明确答案:

我有一个名为“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中,我这样写(使用'dart:js'):

然后,当我运行它时,一切看起来都很好,“menu initiated”(菜单启动)正确地显示,这意味着“listenForMenuLayer”(列表格式层)已启动,但当单击“.nav menu”(导航菜单)时,没有发生任何事情。(我检查了很多次,没有拼写错误或其他错误)

我的问题是:Dart能接受这种外部JS事件的发起吗?或者我们应该重新编写那些JS事件,请建议,非常感谢

更新:
我发现如果我们像上面那样编写js代码,jquery将无法正确启动,这意味着所有以“$”开头的功能将无法正常运行。

伙计们,我将其更新为使用“package:js/js.dart”

@JS('AAA.init')
external void aInit();
然后在一些地方,只需在包括以下内容后拨打电话:

aInit();

据我所知,这应该有效,您是否尝试记录
$('.nav menu')
的返回以查看它是否存在?您是否尝试过使用package:js,他们建议使用此软件包而不是dart:js@HadrienLejard您好,谢谢您的回复,我将尝试一下。@Charles向您上次的更新致谢。这似乎和飞镖无关。也许jquery还没有初始化或类似的东西。
aInit();