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

前端之家收集整理的这篇文章主要介绍了打字:在事件中使用jquery $(this)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
HTML:
<div>
<button data-id="3">Click Me</button>
</div>

在经典的jQuery我会做:

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

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

获取clicked元素的data-id

在Typescript(在类中)我使用:

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

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

....
}

这里我没有得到clicked元素 – $(this)是类的实例。

我做错了什么?

解决方法

根据 Typescript’s spec,“this”指的是该方法属于/被调用的类的实例。

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

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

或者event.currentTarget,取决于你想要获取实际点击的元素还是捕获事件的元素。

原文链接:https://www.f2er.com/jquery/184160.html

猜你在找的jQuery相关文章