在iOS 8.0中,Apple在iPhone上的Safari中引入了一个新的错误,我认为在使用多个<select>元素时非常严重.例如,它通常用于选择出生日期.重现:
有两个创建一个页面<select>有多个<option>每
在iPhone上的iOS 8上的Safari中打开(该错误仍然存在于8.0.2中)
点按第一个 <select>
选择第三个选项,即三月
请注意,它不会更新<select>您选择的内容(在iOS 7中更新)
点按第二个<select>元素
请注意以下事项:
<select>没有更新<select>显示3(这是第一个的位置<select>)您可以通过在点击第一个和第二个之间交替重复此操作<select>,并注意它以相同的模式更改.除非您知道模式,否则这可能是随机出现的).如果你还有一个年度挑选者,那看起来会更加令人困惑.
要试用你的移动设备,试试这个jsfiddle:http: //jsfiddle.net/m7baw590/6/embedded/result/
此外,onchange="alert(this.value)"报告的值不正确(与第二个<select>元素相同.您可以在此处看到:http://jsfiddle.net/m7baw590/7/embedded/result/
如果在每个选择之间单击"完成",或使用箭头切换,则不会发生这些错误.
这有什么解决方法吗?
这是_renderRow函数的一部分.我有一些按钮的基本样式,以及从行上的变量读取的样式.在这个例子中,它是'#f00',但它可以是变量,如thisColor.如何将外部样式与内联样式相结合?
像这样的东西,但这不起作用:
<TouchableHighlight style={[styles.button]{ backgroundColor: '#f00'}}
Run Code Online (Sandbox Code Playgroud)
或者我是否必须将其与TouchableHightlight中的容器嵌套,并将内联样式放在该元素上?
首先检查元素是否存在更快,然后绑定事件处理程序,如下所示:
if( $('.selector').length ) {
$('.selector').on('click',function() {
// Do stuff on click
}
}
Run Code Online (Sandbox Code Playgroud)
或者只是简单地做:
$('.selector').on('click',function() {
// Do stuff on click
}
Run Code Online (Sandbox Code Playgroud)
所有这些都发生在文档就绪,所以延迟越少越好.
html-select ×1
ios ×1
ios8 ×1
iphone ×1
javascript ×1
jquery ×1
performance ×1
react-native ×1
reactjs ×1
safari ×1