无法将新创建的元素聚焦在 ipad 上
Posted
技术标签:
【中文标题】无法将新创建的元素聚焦在 ipad 上【英文标题】:Can not focus newly created element on ipad 【发布时间】:2014-08-29 02:07:57 【问题描述】:我有一部分代码,我在其中动态创建新元素并使它们具有焦点。
代码比较复杂,但是这里是reproducible part on jsfiddle(当你点击输入时,下一个元素被创建,然后焦点被分配给它):
$("body").on( "keypress", ".field", function(e)
if ( e.keyCode == 13 )
$(this).after('<p class="field" contenteditable="true"><br></p>')
$(this).next().focus();
e.stopPropagation();
e.preventDefault();
);
这在桌面浏览器中按预期工作,但未能将下一个元素集中在 ipad 上(并且可能在 iphone 上)
【问题讨论】:
FWIW 您的小提琴在 iPhone 4 ios7 Safari 上运行良好。我没有用于测试的 iPad。 其实,我在 Xcode 的 iOS 模拟器上测试过这个,它在 iOS 7.1、iPad 上运行良好... 您是否尝试过在元素创建和焦点之间添加延迟? @kid 是的,我以为 setTimeout 可以解决问题,但是没有用。 【参考方案1】:Apparently IOS/Safari 仅在触摸事件处理程序中“接受”焦点。我触发了一个触摸事件并在其中插入了
.focus()
。我在我的 iPhone3S/Safari 上试过这个,它可以工作:
Demo.
Actual *** question.
【讨论】:
我为我的案例尝试了相同的解决方案,但失败了。以上是关于无法将新创建的元素聚焦在 ipad 上的主要内容,如果未能解决你的问题,请参考以下文章
在 IE 上聚焦和/或选择一个输入元素很慢,在 dom 中有大量输入标签