JQ和JS事件中的this绑定的是window不是事件本身?

JavaScript023

JQ和JS事件中的this绑定的是window不是事件本身?,第1张

你用箭头函数就是这样的结果,改用传统的匿名函数方式才能达到你的目的:

$("Button").click(function(){

//这里的this就是button对象本身

})

学前端也好久啦,看了很多文档,结合自己的一点经验来讲,对于this,最通俗易懂的理解就是:

首先看个例子:这里的函数getFullName,在哪里调用呢,是不是需要写成person.getFullName(),所以getFullName里的this是指向person这个大对象~

几种常见的情况:

先看一个小例子

再看一个函数的例子

函数在哪里调用的,this就指向哪里。记得这句,就很好理解了呢~

函数在谁身上触发的,this就指向谁。

这个还蛮好理解的,

函数在谁身上触发的,this就指向谁。

看一个例子

解决方法

这样修改之后,this就会指向该user了;

var that= this

遍历一次body下的所有元素。给各元素添加click处理函数或者mousedown处理函数。

var tgs=document.getElementsByTagName("*")

for(var i =0i<tgs.lengthi++){

var t=tgs[i]

t.onMouseDown=function(e){

var that=this

if(this.tagName &&(this.tagName==='table'||-----)){//这里判断有点粗糙,你还需要判断是否是tr或td

//该table的id或者比较别的也行,只要能判断是你需要的那个table

//改变table的样式

}else{//不是你指定的table

//恢复table的样式

}

}

}