2017-10-05 82 views
0

我搜索了所有的stackoverflow並發現了很多帖子,所以我很確定它的重複,但是我找不到任何對我來說是小菜友好和清楚的帖子,也許因爲我很新的打字稿。Typescript/Jquery:訪問內部Jquery範圍內的類

我目前正在使用的是打字稿類,然後單擊Jquery。 通常這或$(this)用於獲取Jquery項目,但是然後再次在TS中,這通常是爲該類保留的:

當我使用Jquery時,這將變爲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); 
    } 

} 
+0

「通常這或$(this)用於獲取Jquery項目,但是然後再次在TS中這通常保留爲類」是不正確的。此外,TypeScript類是JavaScript類。 –

回答

1

正確的解決方案,您應該使用胖箭頭符號自動保留正確的「本」,但您的建議還應該工作,雖然它是更安全在附加處理程序之前保存此信息。

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