【问题标题】:jQuery and Dart interop with call()jQuery 和 Dart 与 call() 互操作
【发布时间】:2017-11-24 05:35:30
【问题描述】:

我正在尝试与 Dart 进行基本的 jQuery 互操作,以便轻松使用 jQuery 插件。

我正在尝试找出一种方法来实现经典的$("#elementID") DOM 查询选择和$.fn.pluginX.methodY() 的插件获取器

到目前为止,我已经开发了这个

@JS()
external JQuery jQuery(String query);

@JS("jQuery")
abstract class JQuery extends intlTelInput.JQuery {
  factory JQuery() {}
  external static Plugins get fn;
}

所以我可以用 Dart jQuery("#elementID") 实现 JS $("#elementID") 和 JS $.fn.pluginX.methodY() 和 Dart JQuery.fn.pluginX.methodY()

但我想在课堂上实现JQuery("#elemID"),最终代码类似于:

@JS("jQuery")
abstract class JQuery extends intlTelInput.JQuery {
  factory JQuery() {}
  external static JQuery call(String query); // <- this replacing jQuery(..)
  external static Plugins get fn;
}

【问题讨论】:

    标签: jquery dart interop dart-js-interop


    【解决方案1】:

    向 Dart 类添加名为 call 的静态方法不会使 JQuery 可调用。 好消息是你可以达到同样的效果,你应该让 jQuery 成为一个 getter,返回一个可调用的 JS 互操作对象。

    试试这个:

        @JS("jQuery")
        external JQuery get jQuery;
    
        @JS() @anonymous
        abstract class JQuery extends intlTelInput.JQuery {
          external JQuery call(String query);
          external Plugins get fn;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 2010-10-20
      • 1970-01-01
      • 2015-07-21
      相关资源
      最近更新 更多