首页 > 编程知识 正文

按键精灵按住连点松开停止,怎么卡觉醒之战bug

时间:2023-05-05 13:17:14 阅读:44189 作者:3404

这两天发生了一个错误。 每次单击下面的键盘时,只要单击一次数字,文本框就会显示两次重复值,如下所示:

控制台还包含以下错误消息:

显示项目代码。 代码如下。

ul li v-for='(item,index ) inkeys ' : key=' index ' v-html=' item.name ' @ mousedown=' handlekeyboardclick ick 索引) @ mouseup=' state change (index ) @touchend='statechange () ) ) touchend )因此,有两个: mousedown和touchstart

事件的处理顺序通常如下:

touchstarttouchmovetouchendmousemovemousedownmouseupclick

调试的结果,确实同时发生了两个事件。 解决方法如下所示。

添加stop事件修饰符以阻止冒泡

@ touch start.stop=' handlekeyboardclick (item.val,index ) '结果:控制台中没有错误信息,但仍然会触发两次。

添加预设方法

1 )在handleKeyboardClick方法中添加e.preventDefault (; 只是添加了此行的代码,没有添加参数e。 控制台报告错误,但在文本框中只显示一次。

方案1 :

handlekeyboardclick : function (代码,索引) { e.preventDefault ); }结果:

方案2 :

handlekeyboardclick : function (代码,索引,e ) { e.preventDefault ); }结果:

2 )将$event添加到touchstart事件

@ touch start=' handlekeyboardclick (item.val,index,$event )”和控制台不报告错误,但文本框中显示两个相同的数字。

3 .终极解决方案:分解mousedown和touchstart两个事件以确定设备。 如果是PC,则可以通过调用mousedown事件,否则调用touchstart事件来解决该问题,但缺点是重复代码会增加。

ul v-if='isPC' li v-for='(item, index ) inkeys ' : key=' item.val ' v-html=' item.name ' @ mousedown=index (@ mouseup=(状态更改) index index ) inkeys ' : key=' item.val ' v-html=' item.name ' @ touch start=' handlekeyboardclick (item.val,index )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。