这个现象我在写项目的时候出现有几次了,但一般都没反应过来,以为是代码写错了而没触发方法。
例如下面,这是之前做的一个vue项目出现的问题:
打印的时候发现blur方法执行了,但列表的点击事件没有执行。
原因:其实这是事件间的执行优先级问题,blur的优先级比click高,所以blur事件先执行了且把列表隐藏了,列表就没有触发click事件咯
解决方法:
1、改用其他事件优先级可以比blur高的事件
2、使用setTimeout延时器
hiddenList(){
setTimeout(() => {
this.isshowList=false
}, 200);
},
200毫秒是我调试后觉得比较合适的数值,太小的话点击事件有时可能不执行,太大页面效果就比较差