gpt4 book ai didi

javascript - typescript /Jquery : accesing the class in a inner Jquery scope

转载 作者:行者123 更新时间:2023-12-03 03:20:50 27 4
gpt4 key购买 nike

我在 stackoverflow 上进行了搜索,发现了很多帖子,所以我很确定它是重复的,但是我找不到任何对我来说友好且清晰的帖子,也许是因为我对 typescript 还很陌生。

我当前正在使用的是 typescript 类,然后单击 Jquery。通常 this 或 $(this) 用于获取 Jquery 项,但在 TS 中,这通常是为类保留的:

当我使用 Jquery 时,this 会被 Jquery 对象替换。

所以我目前正在与:

HTML:

<a data-id="6" class="js-set-crime-option btn btn-primary">Kies</a>

TS:

class Dealers
{
constructor() {
$(".js-set-crime-option").click(this.set);
}

public set() {
var a = $(this);
alert(a.data("id"));

debugger;
// i want to call test here
}

public test(id: string) {
alert("helooooooo" + id);
}

}

如何在此范围内调用测试?

编辑:我发现这不确定这是否是正确的解决方案

var me: Dealers;

class Dealers
{
name:string = "friend";

constructor() {
$(".js-set-crime-option").click(this.set);
me = this;
}

public set() {
var a = $(this);
me.test(a.data("id"));
}

public test(id: string) {
alert("helooooooo" + id + this.name);
}

}

最佳答案

您应该使用粗箭头表示法来自动保留正确的“this”,但您的建议也应该有效,尽管在附加处理程序之前保存 this 更安全。

element.click( () => { this.test(id); } );

关于javascript - typescript /Jquery : accesing the class in a inner Jquery scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46576118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com