用mui开发app的时候碰到一个奇怪的问题。
ios 的input 有时候失效,或者输入一次点击完成后,再点就无效了
找了很久,也上网查了,很多都是说
user-select 设置了 none
- none:
- 文本不能被选择
- text:
- 可以选择文本
- all:
- 当所有内容作为一个整体时可以被选择。如果双击或者在上下文上点击子元素,那么被选择的部分将是以该子元素向上回溯的最高祖先元素。
- element:
- 可以选择文本,但选择范围受元素边界的约束
导致文本不能选中,加上
input{
-webkit-user-select: auto !important;
-moz-user-select: auto !important;
}
在全局css设置这个,但是还是有问题。
没办法,只能强制给input 加上 获取焦点事件,
要在全局 js中设置
function is_ios() {
var u = navigator.userAgent, app = navigator.appVersion;
//var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
/*if (isAndroid) {
//这个是安卓操作系统
return "android";
}*/
if (isIOS) {
//这个是ios操作系统
return true;
}else{
return false;
}
}
mui.plusReady(function() {
/*
* 解决ios 第二次input不能获取焦点问题
*/
if(!is_ios()){
var inputs = document.getElementsByTagName("input");
if(inputs.length){
for(var inputindex = 0; inputindex < inputs.length; i++){
(function(index){
inputs[index].addEventListener("click",function(){
this.focus();
})
})(inputindex)
}
}
}
})
暂时还没测试,但是这样应该就可以了。
有条件的朋友可以自己测试一下。
如果感兴趣,也可以关注我的微信公众号,因为刚起步,所以只有几篇文章,之后会慢慢更新。