JS怎么在mouseover里面阻止click事件

一个BUTTON要执行两个操作,一个是移动,一个是点击,然后移动用的是mouseup+mousemove+mousedown事件来完成的,点击是click。但是当我移动了之后还是会触发click事件。移动和点击最大的区别就是有没有执行mousemove事件,所以我就想在mousemove事件里面可以阻止click事件,不知道有没有什么办法

阅读 9k
3 个回答

你可以在 mousemove 事件里面放一个标志变量,在 click 事件里判断这个变量是否为 true,如果是就直接 return

给你写出来了,codepen 例子

思路是如果按钮在移动则click事件被prevent default了,如果按钮停止移动,则正常点击。是否停止移动是用一个timer来判断的,如果最后一个移动事件过了300ms后没有再触发mousemove事件则判断为停止移动。

单从你的标题来回答,事件方法的e里面不是有type嘛? 根据type判断然后stoppropagation不就可以了吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题