最近在做一个小程序,用到了即时通讯框架,于是着手撸一个界面
(请别介意这爆丑的界面=3=)
开发者工具上,调试,即时通讯系统能够正常使用了,嗯,上真机~
这时候就出现问题了。
因为点击input框时,会聚焦拉起键盘,但是点击发送时,input丢失了焦点,键盘就缩回去了,难不成要用户发一句点一下键盘??
查看官方api文档,对于input组件,有一个可能用的上的属性focus
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
focus | Boolean | false | 获取焦点 |
假如我点击了按钮,然后再给input框的focus属性赋值true的话,不就可以了?
啪啦啪啦写完实现,真机调试!
什么鬼,这键盘蹦跶的,是要瞎了用户眼吗?
没法了,只好网上找解决方案。
前面废话说完了,重头戏来了~
网上找到的基本上都是跟我的解决方案一样????
冥思苦想,然后想到了一个奇葩的解决方法,各位如果有啥建议就说说哈~
将< button>放到< input >里去
就是这样
<input type="text" bindinput="chat">
<button bindtap="send">发送</button>
</input>
原理上大概就是,
bindtap事件是冒泡的,点击了发送后,从而使得focus未发生改变,也就不会闪烁了。