为了账号安全,请及时绑定邮箱和手机立即绑定

小白问个事件监听传参数的问题

小白问个事件监听传参数的问题

路人戊_ 2018-02-25 23:41:20
一个函数,当事件发生的时候触发事件的元素改变属性,要用到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绑定的事件,有些缺陷(只能绑定一个)。

查看完整回答
2 反对 回复 2018-02-26
  • 路人戊_
    路人戊_
    感谢感谢,仔细看了下,原来fn不用加引号,我就说咯 var a = true; function fn(){ if(a){ this.style.background='#f00'; }else{ this.removeAttribute("style"); } a = !a; } document.getElementById('input1').addEventListener('click',fn) //给其他同学参考
  • 1 回答
  • 0 关注
  • 1029 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信