我有一个响应式网页,当我从一个尺寸变为一个尺寸时,我想用jquery重新排序。一切都很棒,除非我重新排序一个有输入的元素(例如DIV),比如搜索表单:
$('#searchfrm')。insertAfter('#bodyfrm');
如果我这样做,当我点击输入时,键盘会出现一秒钟然后消失。这只发生在Android上,在iPhone上完美运行。
如果我评论代码行,输入在Android上完美运行,但我不希望搜索表单在顶部,而是在响应式设计的页面底部。
如何防止这种情况发生?谢谢!
答案 0 :(得分:1)
我发现问题在于重新排序元素。重新排序过程一直在进行,所以在Android中,当键盘出现时,jquery再次重新排序,使键盘消失。解决方案是在jquery中添加一个变量以防止重新排序过程,例如,当从1024到700时,只执行一次。
答案 1 :(得分:0)
我遇到了类似的问题,但是发现这是由于$(window).on("resize",function(){...});
而不是用于重新定位元素的.insertAfter脚本引起的。
如果您重新定位的元素具有一个输入字段,并且该输入字段处于焦点位置〜Android打开键盘的默认行为实际上会调整浏览器的大小,从而导致函数循环。 -参考:(dealing-androids-constant-browser-resizing)。改变功能以在(加载)而不是(调整大小)上触发对我有用。 $(window).on("load",function(){...});