【前端】JS-删除绑定事件

自己在练习输入密码框的时候突然想到之前用过的网站中基本都有这么一个功能:

最开始密码输入框里有提示输入密码的文字,点击之后文字消失,可以输入密码(此时密码是不可见的,也就是type是password)。这个需求很快就实现了,可是我写的代码还有一点问题,就是当输入框失去焦点,重新点击输入框的时候,原先输入的密码也消失了。

于是我开始分析问题,导致原先输入的密码消失的原因就是我的输入框绑定了一个点击事件,当我点击的时候,会把他的type设置为password,同时value设置为null。如果想解决问题,就需要让这个点击事件只在最开始的时候触发一次,也就是点击时候在做完我们想要的事情时候移除掉这个点击事件,现在提供移除点击事件的几种方法:

一、直接移除点击事件
Element.onclick = null;
二、通过removeEventListener方法
// 这里fn必须是原有绑定的函数,如果是匿名函数则不适用此方法
Element.removeEventListener(type, fn, false);
三、通过detachEvent方法
Element.detachEvent(type, fn); // 这里 fn 必须是原有绑定的函数,否侧解除无效

因为我写的demo里用的是匿名函数,所以采用了第一种方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值