一个BUTTON要执行两个操作,一个是移动,一个是点击,然后移动用的是mouseup+mousemove+mousedown事件来完成的,点击是click。但是当我移动了之后还是会触发click事件。移动和点击最大的区别就是有没有执行mousemove事件,所以我就想在mousemove事件里面可以阻止click事件,不知道有没有什么办法
一个BUTTON要执行两个操作,一个是移动,一个是点击,然后移动用的是mouseup+mousemove+mousedown事件来完成的,点击是click。但是当我移动了之后还是会触发click事件。移动和点击最大的区别就是有没有执行mousemove事件,所以我就想在mousemove事件里面可以阻止click事件,不知道有没有什么办法
给你写出来了,codepen 例子
思路是如果按钮在移动则click事件被prevent default了,如果按钮停止移动,则正常点击。是否停止移动是用一个timer来判断的,如果最后一个移动事件过了300ms后没有再触发mousemove事件则判断为停止移动。
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
你可以在 mousemove 事件里面放一个标志变量,在 click 事件里判断这个变量是否为 true,如果是就直接 return