这篇文章是我在一次项目的开发中,项目需要对一个列表名称,可以通过长按来进行修改。我在做这个长按的事件的功能时,主要还是在网上搜索各位大神们的经验博客来做的,当然也有根据自己的项目需要做了些修改。现在的我发表这篇文章,主要还是想把我的做法记录下来以备以后需要时可以直接查看,当然如果有人查看的话,发现不足之处,欢迎指正 哎,刚才废话了下,现在直接上主题。我的项目是主要是对一个light7 做出来的列表,通过长按后,列表的名称变成可以输入框,输入完成之后,点击输入框之外的地方就给出一个confirm询问框,询问是否要修改,点击修改时,就访问后台进行修改,点击否时,则将回置为之前的内容,当然如果只是长按但没有改动名称,点击外面时则直接恢复名称列表为不可修改状态,不做出询问。这里的处理主要是根据我的项目需要来做的。
自己模拟长按事件当然还是需要 touchstart、touchmove、touchend 这三个事件来处理的。
touchstart:按下时会触发一个event事件
touchmove:按下后移动时会触发一个event事件
touchend :按下离开时会触发一个event事件
长按事件的模拟就是通过这三个来实现,touchstart是按下,touchend是离开,只要在touchstart中定义一个定时器,当触碰的时间达到定时器的时间就可以去做长按事件的处理,那为什么还要使用touchmove呢,这是因为按下后如果鼠标或者手指滑来滑去,这不算是长按,算是拖动,所以也需要在touchmove中对事件的监听处理。
手机上模拟长按时,首先要去除系统自带的长按时间,否则自己写的长按事件的处理不会起作用,