TypeScript:在事件中使用 jquery $(this)

2024-02-07

HTML:

<div>
<button data-id="3">Click Me</button>
</div>

在经典的 jQuery 中我会这样做:

$("div").on("click","button", test);

function test(){
   alert($(this).data("id"));
}

为了得到data-id被点击元素的

在 TypeScript 中(在课堂上)我使用:

class foo { ...
 $("div").on("click", "button", (event) => this.test());

 public test(){
    alert($(this).data("id")); // "undefined"
    console.log($(this));
 }

....
}

这里我没有得到点击的元素 -$(this)是该类的实例。

我做错了什么?


根据Typescript 的规范 http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf“this”指的是该方法所属/被调用的类的实例。

您可以使用传递给回调的事件对象的目标属性:

class foo {
  public test(evt){
    alert($(evt.target).data("id")); // "undefined"
    console.log($(evt.target));
  }
}

Or event.currentTarget取决于您是否想要获取实际单击的元素或捕获事件的元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript:在事件中使用 jquery $(this) 的相关文章

随机推荐

  • 验证应该在 Form 对象中还是模型中完成?

    这个问题主要针对PHP中的Zend 尽管它当然也适用于其他语言和框架 所以我欢迎大家的意见 我最近才开始使用 Zend 框架 虽然它并不完美 但我用它玩得很开心 然而 让我发疯的一件事是 我看到的大多数使用 Zend 的人的例子都是特殊形式
  • GetSystemMetrics() 对 .NET 4.5 和 .NET 4.0 返回不同的结果

    在 NET 4 0 gt NET 4 5 应用程序迁移过程中 我发现了一种极其奇怪的行为 我已经能够将这个问题追溯到这个简短的代码片段 class Program System Runtime InteropServices DllImpo
  • 如何在经典asp中执行多线程/后台进程

    我需要通过经典 asp 应用程序上的后台作业发送电子邮件 这样用户就不必等待缓慢的网络服务器完成发送电子邮件 我知道我可以使用 Ajax 生成两个单独的请求 但我不想需要 Javascript 另外 我怀疑有更好的方法来实现这一目标 有想法
  • Cordova 构建错误:在严格模式下使用 const

    我在 VS 2015 中创建了一个新的 Cordova 项目 当我尝试运行代码时 我在构建输出中收到以下错误 1 gt Build started Project TestProject Configuration Debug Androi
  • Docker 返回退出代码 3221225781 安装 vc_redist.x64.exe

    我在 docker RUN 中看到了很多有关退出代码 3221225781 的问题 但我仍然找不到答案 考虑这个 dockerfile FROM mcr microsoft com dotnet core runtime 3 1 WORKD
  • 将自然语言描述解析为结构化数据的策略

    我有一系列要求 并且正在寻找最好的基于Java使用的策略 算法 软件 基本上 我想获取一组由真人用自然英语输入的食谱成分 并将元数据解析为结构化格式 请参阅下面的要求以了解我想要做什么 我环顾过这里和其他地方 但没有找到任何关于下一步方向的
  • 在Java中为单链表创建新节点

    我仍在学习 Java 目前正在解决 破解编码面试 中的问题 第 2 章 LinkedList 中的问题之一要求从未排序的链表中删除重复项 我在 GitHub 上找到了一堆答案 解决方案 但我想创建自己的 Node 并编写自己的版本 到目前为
  • C# 退出使用 lambda 的泛型 ForEach

    有谁知道是否可以退出使用 lambda 的通用 ForEach 例如 someList ForEach sl gt if sl ToString foo break continue processing sl here some proc
  • 如何从 CFMutableDictionary 检索特定键的值

    In C EventType find 1 gt second可用于查找键 1 的值 我是 Objective C 的新手 我已经实现了CFDictionary为其增加价值 但是我该怎么办 retreive并查看values特定键的 EDI
  • SQL Server通讯协议问题

    我正在使用 VSTS 2008 C ADO Net SQL Server 2008 我对 SQL Server 2008 将使用哪种通信协议的问题 我的问题的更多详细信息 如果连接字符串看起来像这样 是否使用命名管道或 TCP IP 使用不
  • Vue index.html favicon 问题

    我正在使用 Vue 2 0 和 Vue CLI 3 0 我试图让 favicon ico png 文件正常工作 但一点运气都没有 我已将问题缩小到以下范围 由yarn build生成的index html文件转换了这行html代码 to 如
  • 创建我的第一个 JDBC Realm(Glassfish V3)

    我想为我的 Web 应用程序创建一个 JDBC 领域 由于我的用户彼此之间非常不同 我只需要一个表 其中包含领域的用户名和密码 我决定在我的数据库中创建一个名为 ROLE 的新表 与其他用户表的一对一关系 This is how my us
  • 如何知道应用程序正在关闭

    有一个 WPF 应用程序 我想在应用程序关闭时记录 但我无法修改应用程序 一些限制 只是因为业务 因此 我在现有应用程序中创建了一个不可见的表单组件 添加为 dll 库 因此不需要修改现有应用程序 但问题是 我的隐形组件如何知道应用程序正在
  • 上传前预览多张图片

    我想预览多个图像 但问题是如果我上传 2 个图像 我的代码就可以工作 我想预览与用户上传的一样多的内容 这是我的 JavaScript var abc 0 Declaring and defining global increement v
  • C#:获取域中计算机的信息

    为了获取网络中某台计算机的信息 我应该在 C 中使用哪些类 例如谁登录了该计算机 该计算机上正在运行什么操作系统 打开了哪些端口等 查看系统管理 http msdn microsoft com en us library system ma
  • TableTools 导出在多个 JQuery 选项卡上的 DataTables 中不起作用

    我使用 DataTables 1 8 2 TableTools 2 0 1 和 JQuery 1 6 4 在三个 jQuery 选项卡上分别显示一个表格 TableTools 为表格提供了复制 Excel PDF 打印导出功能 并且仅适用于
  • 描述符的 Python 文档字符串

    我使用描述符来定义接口类的寄存器 class Register object def init self address docstring instance docstring self address address self doc
  • 当你没有在 ruby​​ 中指定异常类时,你会捕获哪些异常?

    当您不指定这样的异常类时 您会捕获哪些异常 begin do something rescue puts Exception end 根据我的副本Ruby 编程 1 9 不带参数的救援子句被视为具有参数StandardError 这是来自的
  • 如何在 Windows 中安装适用于 Python 3.4 的 pandas?

    根据the docs http pandas pydata org pandas docs dev install html 这应该有效 从 PyPI 安装 pandas 可以通过 PyPI 中的 pip 安装 点安装熊猫 这可能需要安装许
  • TypeScript:在事件中使用 jquery $(this)

    HTML div div