箭头函数调用jquery中的$(this)问题
$('img').click(() =>{
console.log($(this))
})
$('img').click(function(){
console.log($(this))
})
普通函数得到的是点击img的那个元素,而箭头函数是返回的是window对象
因为箭头函数在创建时就已经绑定了
this
, 后面在执行时不能重新绑定。在JQuery中通常不要用箭头函数,因为JQuery在执行回调函数时很多时候会为它动态绑定一个this
, 所以你不要在创建时为它绑定this, 也不要用箭头函数。
() => {};
// 相当于:
funciotn(){}.bind(this);
最简单的方法就是:不使用箭头函数。