jquery 导致键盘在 android 上 appear/disappear
jquery causes keyboard to appear/disappear on android
我有一个响应式网页,当从一种尺寸变为较小尺寸时,我想用 jquery 重新排序。一切都很好,除非我重新排序其中包含输入的元素(例如 DIV,例如搜索表单:
$( '#searchfrm' ).insertAfter( '#bodyfrm' );
如果我这样做,当我点击输入时,键盘出现一秒钟然后消失。这仅在 Android 上发生,在 iPhone 上完美运行。
如果我注释代码行,输入在 Android 上完美运行,但我不希望搜索表单位于顶部,而是位于响应式设计页面的底部。
如何防止这种情况发生?谢谢!
我发现问题出在重新排序元素时。重新排序过程一直在进行,因此在 Android 中,当键盘出现时,jquery 再次重新排序,使键盘消失。解决方案是在 jquery 中添加一个变量,以防止重新排序过程始终发生,并且仅在从 1024 到 700 时执行一次,例如。
我有一个类似的问题,但发现这是由于 $(window).on("resize",function(){...});
而不是用于重新定位元素的 .insertAfter 脚本。
如果您重新定位的元素有一个输入字段并且该输入字段处于焦点状态 ~ Android 打开键盘的默认行为实际上会调整浏览器的大小,从而导致函数循环。 - 参考:(dealing-androids-constant-browser-resizing)。将函数更改为在 (load) 上触发而不是在 (resize) 上触发对我有用。 $(window).on("load",function(){...});
我有一个响应式网页,当从一种尺寸变为较小尺寸时,我想用 jquery 重新排序。一切都很好,除非我重新排序其中包含输入的元素(例如 DIV,例如搜索表单:
$( '#searchfrm' ).insertAfter( '#bodyfrm' );
如果我这样做,当我点击输入时,键盘出现一秒钟然后消失。这仅在 Android 上发生,在 iPhone 上完美运行。
如果我注释代码行,输入在 Android 上完美运行,但我不希望搜索表单位于顶部,而是位于响应式设计页面的底部。
如何防止这种情况发生?谢谢!
我发现问题出在重新排序元素时。重新排序过程一直在进行,因此在 Android 中,当键盘出现时,jquery 再次重新排序,使键盘消失。解决方案是在 jquery 中添加一个变量,以防止重新排序过程始终发生,并且仅在从 1024 到 700 时执行一次,例如。
我有一个类似的问题,但发现这是由于 $(window).on("resize",function(){...});
而不是用于重新定位元素的 .insertAfter 脚本。
如果您重新定位的元素有一个输入字段并且该输入字段处于焦点状态 ~ Android 打开键盘的默认行为实际上会调整浏览器的大小,从而导致函数循环。 - 参考:(dealing-androids-constant-browser-resizing)。将函数更改为在 (load) 上触发而不是在 (resize) 上触发对我有用。 $(window).on("load",function(){...});