【问题标题】:Cannot use `$(document).ready` in TypeScript无法在 TypeScript 中使用 `$(document).ready`
【发布时间】:2019-03-31 03:41:13
【问题描述】:

在 TypeScript 中使用 $(document) 会出现错误 Supplied parameters do not match any signature of call target.

我正在使用 TypeScript 3.1、jQuery 3.3.1 和 @types/jQuery 3.3.29。

$(document) 是否已弃用,我应该使用其他东西还是类型定义文件中的错误?

编辑: 这个 TypeScript 文件的整个正文基本上是“Hello World!”。

$(document).ready(() => {
    console.log("Hello World!");
});

【问题讨论】:

  • 你调用任何带参数的函数吗?
  • 试试:jQuery(document).ready(()
  • jQuery(document) 给出了同样的错误。

标签: jquery typescript


【解决方案1】:

$(document).ready(handler) 有两个功能等效的变体,第一个是$().ready(handler),第二个是直接$(handler)

在 jQuery 3.0 中,前两个已被弃用,只剩下 $(handler)。官方的理由是:

这是因为选择与.ready() 方法的行为无关,该方法效率低下并且可能导致对该方法行为的错误假设。

TypeScript 定义文件只是不包含已弃用的语法,为了向后兼容,它仍然有效。您的脚本应如下所示:

$(() => {
    console.log("Hello World!");
});

【讨论】:

    猜你喜欢
    • 2019-03-09
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2011-03-26
    相关资源
    最近更新 更多