首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何键入jQuery .on(“粘贴”,hdl)

如何键入jQuery .on(“粘贴”,hdl)
EN

Stack Overflow用户
提问于 2021-04-25 21:43:24
回答 1查看 27关注 0票数 1

我正在尝试为Chrome (仅限)下的contenteditable <div>定义处理程序。我有一个jQuery JQuery<HTMLElement>,我想用.on()添加一个paste事件处理程序,但是typescript在这一点上抱怨说:

代码语言:javascript
复制
No overload matches this call.
  The last overload gave the following error.
    Argument of type 'string' is not assignable to parameter of type
'TypeEventHandlers<HTMLElement, (event: ClipboardEvent) => void, HTMLElement, HTMLElement>'.ts(2769)
JQuery.d.ts(8059, 5): The last overload is declared here.

代码是:

代码语言:javascript
复制
const pasteHandler = (event: ClipboardEvent): void => {
    const pastedData = event.clipboardData!.getData("text/plain");
    console.log(pastedData);
};
$("div").on("paste", pasteHandler); // <- error message from here

pasteHandler的正确类型是什么?我尝试过,但无法破译jQuery类型的文件。我发现的唯一解决办法是将on调用替换为:$("div")[0].addEventListener("paste", pasteHandler);谢谢您的帮助!请不要关注jQuery的使用。这是一个古老的代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-26 01:40:19

它可以是

代码语言:javascript
复制
const pasteHandler = (event: JQuery.TriggeredEvent<HTMLElement, undefined, HTMLElement, HTMLElement): void => {
  const pastedData = (event.originalEvent as ClipboardEvent).clipboardData?.getData("text/plain");
  //...
}

演示:https://codesandbox.io/s/strange-noether-lgnsi?file=/src/index.ts

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67254055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档