为什么设置this.onclick=''后绑定的函数仅会执行一次?
原理说明
相关代码片段如下:
<a href="#" onclick="addP(); this.onclick='';">See more</a>
原因解释
- 这种直接写在HTML标签
onclick属性中的事件绑定属于DOM 0级事件绑定,对应的处理逻辑会直接存储在DOM元素实例的onclick属性上,元素触发点击事件时就会执行该属性中存储的代码。 - 第一次点击a标签时,代码会按顺序执行:
- 首先调用
addP()函数执行业务逻辑 - 随后执行
this.onclick='',这里的this指向当前被点击的a标签DOM实例,该语句会将元素的onclick属性值清空为空字符串
- 首先调用
- 后续再次点击该a标签时,
onclick属性已经没有可执行的有效代码,自然不会再触发addP()运行,因此addP()只会执行一次。
内容的提问来源于stack exchange,提问作者carp king
相关产品推荐
相关产品推荐

