用ant mobile input 组件实现下面输入提示,提示添加click事件,input 添加change事件。
预期:点击提示项的时候,预期是只触发click事件。
实际:英文输入法正常,只触发click事件;中文输入法触发了click事件,同时触发了input的change事件。
现象:下面页面还用了LoadMoreList,并在 loadMore加载更多数据,导致点击后提示仍在,同时循环请求接口获取数据。
解决方案
1、在每次点击提示的时候记录点击事件 clicktime
2、change事件里获取 time = nowTime - clicktime
3、通过time > 500 过滤掉这种额外触发change事件的情况,不做处理。
同事推了这篇文章,发现原来input还有compositionend事件,不过看起来应该不能解决这个问题,所以还是采用时间去过滤。