JavaScript中鼠标事件触发顺序探索

这次是为了完成之前脑袋里比较模糊的一个疑问。大家都知道,关于鼠标的事件有非常多,如PC模式下的click、mousedown、mouseup,手机模式下的touchstart、touchend、touchmove。那么如果将他们全部绑定之后,在PC端和移动端分别做一些鼠标的常用操作,事件触发的情况会是如何呢。

毕竟实践出真知,所以今天我就实验了一下。

首先打开了百度,然后f12,切换到手机模式,在console控制台中,为body标签绑定上之前提到的所有事件,代码如下:


接下来,我们就可以正式开始实验了:


一、移动端模式下:

(1)快速点击一次


可见移动端单击会先触发touchstart事件,并在touchend前成功触发点击事件。


(2)长按再松开(不移动)


可见移动端中,如果长按再松开,将不再触发click事件,而变成mousedown事件。


(3)按住拖动再松开


不再触发click和mousedown,转而变成touchmove



二、PC模式下(切换回pc模式实验)

经过测试,在PC模式下做以上的三种操作,触发效果一致,如下:


总结:经过上边的测试,我们可以发现一些规律。

1.PC模式下,无论如何都不会触发与touch相关的事件。

2.click事件,在pc模式下是在鼠标down再up之后才算触发,而移动模式下则在touch的start之后,end之前触发。

3.移动模式下长按不会触发click事件,如果不移动,则会在touchstart之后不久触发mousedown事件,如果移动则触发mousemove事件。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值