我认为这是移动Safari的功能,而不是错误。在我们对FastClick的研究中,我和我的同事们发现,如果调用堆栈中的第一个函数是由非编程事件触发的,则iOS仅允许在函数内的其他元素上触发焦点。在您的情况下,对的调用将
setTimeout启动一个新的调用堆栈,并且启动了安全机制以防止您将焦点放在输入上。
请记住,在iOS上,将焦点放在输入元素上会弹出键盘-
因此,像Google一样,所有在页面加载时将焦点放在输入元素上的网页都会在iOS上使用非常烦人。我想苹果公司决定他们必须采取一些措施来防止这种情况。所以我不同意@DA:这是一个功能,而不是错误。
没有已知的解决方法,因此您必须放弃使用延迟的想法。
更新:
从iOS5开始,允许由合成点击事件触发的处理程序触发对输入元素的关注。请尝试更新的FastClick输入焦点示例。



