【问题标题】:Can not focus newly created element on ipad无法将新创建的元素聚焦在 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 可以解决问题,但是没有用。

标签: javascript ios ipad focus


【解决方案1】:

Apparently IOS/Safari 仅在触摸事件处理程序中“接受”焦点。我触发了一个触摸事件并在其中插入了.focus()。我在我的 iPhone3S/Safari 上试过这个,它可以工作:

Demo.

Actual Stackoverflow question.

【讨论】:

  • 我为我的案例尝试了相同的解决方案,但失败了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-31
  • 2016-07-19
相关资源
最近更新 更多