获得徽章 0
- click事件的触发过程:mouseDown -> mouseUp -> click。
mouseMove事件的触发过程:mouseDown -> mouseMove -> mouseUp -> click。
如果一个元素即可点击又可以拖拽,也就是同时注册了click和mouseMove事件,那么无论点击还是拖动元素,最终都会触发click事件,这就会引起冲突,解决办法使用一个变量进行控制,mouseMove事件触发时将变量赋值为true,在click事件监听函数中判断该变量为true时不执行点击事件的相关逻辑。
另外,在一些特殊情况下(如元素有title属性)mouseDown触发时会连带触发mouseMove事件,其实元素并未真正发生移动,这个时候就需要通过对比元素在两次点击时坐标是否发生变化进行区别处理。展开赞过评论3