这篇文章记录一种离奇的input事件被触发的情况。

最近在开发小程序时,遇到了很奇怪的情况。当时wxml结构如下:

<view>
    <input bindinput="input" />
    <view class="clear" bind:tap="clear"></view>
</view>

input组件和.clear组件是没有相互覆盖的。

input中输入内容后,如果此时input没有获得焦点,也就是软键盘没有弹出,点击.clear只触发clear事件。但当input获得焦点,软键盘弹出时,点击.clear会先触发clear事件,然后触发input事件。此时查看input事件事件对象e,发现e.detail只有value,不存在keyCodecursor。也幸好能通过和正常的input事件的这些区别,才能在上面的情况时,采取不同的操作。

找了好久,始终没有发现为什么会这样。如果有大神也遇到过这种情况,请不吝赐教。

标签: bindinput