【问题标题】:jquery causes keyboard to appear/disappear on androidjquery导致键盘在android上出现/消失
【发布时间】:2015-06-29 10:38:23
【问题描述】:

我有一个响应式网页,当从一种尺寸变为更小的尺寸时,我想用 jquery 对其进行重新排序。一切都很好,除非我重新排序具有输入的元素(例如 DIV),例如搜索表单:

$('#searchfrm').insertAfter('#bodyfrm');

如果我这样做,当我单击输入时,键盘会出现一秒钟然后消失。这仅在 Android 上发生,在 iPhone 上完美运行。

如果我评论代码行,输入在 Android 上完美运行,但我不希望搜索表单在顶部,而是在响应式设计的页面底部。

如何防止这种情况发生?谢谢!

【问题讨论】:

  • JQuery 是否使用任何输入框重新排序?
  • 是的,重新排序在所有元素上都可以正常工作,问题是重新排序时,输入会呈现该行为(显示/隐藏键盘)

标签: android jquery input keyboard qwerty


【解决方案1】:

我发现问题出在重新排序元素时。重新排序过程一直在进行,所以在 Android 中,当键盘出现时,jquery 再次重新排序,使键盘消失。解决方案是在 jquery 中添加一个变量,以防止一直进行重新排序过程,例如从 1024 到 700 时只执行一次。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,但发现这是由于 $(window).on("resize",function(){...}); 而不是用于重新定位元素的 .insertAfter 脚本。

    如果您重新定位的元素有一个输入字段并且该输入字段处于焦点位置 ~ Android 打开键盘的默认行为实际上会调整浏览器的大小,从而导致函数循环。 - 参考:(dealing-androids-constant-browser-resizing)。更改触发(加载)而不是(调整大小)的功能对我来说是诀窍。 $(window).on("load",function(){...});

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2012-04-13
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      相关资源
      最近更新 更多