为什么JQuery $(this)在箭头功能中不起作用

时间:2019-11-12 16:05:11

标签: jquery ecmascript-6 arrow-functions

我正在尝试使用$(this),以便能够使用箭头中的jQuery对象,但是它不起作用

$('.btnReserve').click(function(){
        var element_div = $(this).closest('div');
        console.log(element_div.attr('id');
    });

效果很好

但是...

$('.btnReserve').click(() => {
        var element_div = $(this).closest('div');
        console.log(element_div.attr('id');
    });

$(this)不起作用

为了获得理想的结果,我使用了下面的方法

$('.btnReserve').click((event) => {
        var element_div = $(event.target).closest('div');
        console.log(element_div.attr('id');
    });

1 个答案:

答案 0 :(得分:4)

带有箭头功能的this指向直接在您创建的函数范围之外的范围。

使用常规函数,它是指全局范围绑定范围(在您的情况下为jquery对象)

() => {}与做(function () {}).bind(this)

尝试使用传递给函数的事件

$('.btnReserve').click((event) => {
    const element_id = event.target.id;
    console.log(element_id );
});