Trên trang web của tôi, tôi có loại bỏ các biểu tượng trên các hàng trong một bảng như thế này:'này' phạm vi trong nguyên cảo
Tôi đang sử dụng nguyên cảo nơi tôi có kèm theo một onClick
nghe để thực hiện một chức năng gọi là OnRemoveClick
, như thế này $('.remove').click(this.OnRemoveClick);
OnRemoveClick
số không 2 lĩnh vực (trên hàng vào biểu tượng xóa được nhấp) và sau đó thực hiện 2 chức năng, như thế này:
private OnRemoveClick(): void {
$(this).parents('tr').find('.input-qty').val('0');
$(this).parents('tr').find('.sub-total').html('0');
this.GetInputFieldsToJson();
this.CalculateTotal();
}
Tôi có vấn đề là nó té ngã hơn khi tôi nhận được để GetInputFieldsToJson
tôi nhận được:
TypeError: this.GetInputFieldsToJson is not a function at HTMLAnchorElement.Index.OnRemoveClick
Tôi nhận ra đó là vì this
trong bối cảnh OnRemoveClick
được gắn vào HTMLAnchorElement
có nghĩa là tôi không thể truy cập của tôi chức năng từ đó.
Những gì tôi đã cố gắng
Tôi đã cố gắng thiết lập người nghe onClick với một biểu thức lambda như thế này:
$('.remove').click(() => this.OnRemoveClick);
nhưng điều đó có nghĩa là hai biểu thức jQuery để zero lĩnh vực trên hàng không còn hoạt động
'$ ('xóa') bấm (this.OnRemoveClick.bind (this));' sau đó 'tin OnRemoveClick (e):. khoảng trống {$ (e.currentTarget) .parents () ...} ' –
https://github.com/Microsoft/TypeScript/wiki/'this'-in-TypeScript –
@Arun P Câu trả lời của Johny là chính xác. Điều này sẽ làm việc cũng $ ('. Remove'). Click (() => this.OnRemoveClick()) – Martin