今天遇到一个日历弹框一闪而过的问题,觉得不可思议,调试了好几个小时。怎么click事件发生在body上,而且isTrusted为true。

最后查文档发现click事件只有在mousedown和mouseup都发生在同一个DOM元素上时才会在该元素上触发click事件。如果mousedown发生在a上,mouseup发生在b上,最后的click事件发生在a和b共同的祖先元素上。

1.遇到问题还是要查询官方文档
2.不要想当然。开始时我在理解click事件target是body时总觉得是发生了什么错误,click的target应该是input才对。之后发现input在聚焦时出现弹框,弹框覆盖在input上,导致mouseup触发在弹框中,所以最后click发生在body上
展开
评论