Javascript 移动浏览器(尤其是Safari)中的选择和输入问题,可能是由于移动设备上的300毫秒点击延迟造成的

Javascript 移动浏览器(尤其是Safari)中的选择和输入问题,可能是由于移动设备上的300毫秒点击延迟造成的,javascript,angularjs,mobile-safari,Javascript,Angularjs,Mobile Safari,我注意到,当在我的web应用程序中引入表单并在iOS(iPhone)中进行测试时,以及在Chrome开发工具中使用手机模拟器进行测试时,我在HTML输入方面遇到了问题,尤其是选择标记 当我在移动设备上进行测试时,我单击“选择”菜单,菜单选项随即显示并立即隐藏!我必须保留表单项,然后释放以访问选项。当使用与Chrome开发工具捆绑的设备/电话模型模拟器时,当我单击选择菜单时,选项也不会显示 我的应用程序是使用HTML5和AngularJS编写的,因此我使用ng click或ng touch来实现我

我注意到,当在我的web应用程序中引入表单并在iOS(iPhone)中进行测试时,以及在Chrome开发工具中使用手机模拟器进行测试时,我在HTML输入方面遇到了问题,尤其是选择标记

当我在移动设备上进行测试时,我单击“选择”菜单,菜单选项随即显示并立即隐藏!我必须保留表单项,然后释放以访问选项。当使用与Chrome开发工具捆绑的设备/电话模型模拟器时,当我单击选择菜单时,选项也不会显示

我的应用程序是使用HTML5和AngularJS编写的,因此我使用
ng click
ng touch
来实现我的许多功能,这消除了延迟,但我在尝试编写/聚焦文本输入或更改/设置选择菜单的值时遇到了问题

我试图通过更改视口元标记的值来纠正这一点

<meta name="viewport" content="width=device-width, user-scalable=no">

这似乎对设备上的Chrome有所帮助,但对Safari没有帮助。它也不会改变Chrome开发工具中模拟器的行为。应用这样的更改会失去缩放的能力,但我对此没有意见-我的问题是,我该怎么做才能避免Safari中的延迟问题?我曾想过,也许我可以编写一个指令,消除延迟,并将其应用于所有表单,以捕获每个表单项上的单击事件,如和,但这似乎有点过分了。有人有其他建议吗

非常感谢


请注意,我没有在我的应用程序中使用jQuery

一个选择是不使用输入或选择来收集信息,使用类型隐藏来收集信息。你有没有试过查看触摸?它还消除了300毫秒的延迟,也许它将在移动浏览器中提供更一致的行为。