4

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

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

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

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

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

4

2 回答 2

2

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

于 2015-04-24T18:01:51.553 回答
1

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

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

于 2019-04-08T17:15:28.140 回答