一个函数,当事件发生的时候触发事件的元素改变属性,要用到this参数。用addEventListener不能传参数(我想传一个this过去),网上的方法有点复杂看不懂,所以我想到用setAttribute的方法试试,没想到也能运行,但是网上说这方法不行,为什么;var a = true;function fn(_this){if(a){_this.style.background='#f00';}else{_this.removeAttribute("style");}a = !a;}document.getElementById('input1').setAttribute('onclick','fn(this)');//HTML<form action="456" method="get" accept-charset="utf-8"><input id="input1" type="button" name="a123" value="645" style="color:#ccc"></form>
1 回答
已采纳
ruibin
TA贡献358条经验 获得超213个赞
其实没有那么复杂,你绑定在函数里面直接使用this就行,这时候函数里面的this就指向你绑定点击事件的元素(input1)。你这样做其实也可以,但是不使用的addEventListener绑定的事件,有些缺陷(只能绑定一个)。
添加回答
举报
0/150
提交
取消