作者:死神邀请我 | 来源:互联网 | 2023-01-30 19:49
我有一个小的加载脚本来设置一些看起来像这样的类:
function frameIt() {
console.log("called frameit")
$( 'img' ).on('load', () => {
console.log("running listener")
debugger;
$( this ).addClass( "tasty" );
});
console.log("set listener")
}
我的问题是$(this)
始终设置为window
即使this
在上下文中是img
Chrome的调试器显示的加载标记.为什么会发生这种情况的任何想法?这是一个Chrome调试器截图:
1> Li357..:
这是因为箭头函数不绑定它们自己的this
上下文 - 它们采用this
封闭范围的值.由于jQuery的结合事件处理程序是this
在内部,但this
不能被绑定到一个箭头功能,this
指的是window
因为它是this
封闭的范围值.请改用常规功能.