【问题标题】:JQuery focus() method on the ipad [duplicate]ipad上的JQuery focus()方法[重复]
【发布时间】:2011-03-13 04:05:01
【问题描述】:

可能重复:
iPad HTML Focus

有谁知道如何从 jquery 获取 focus() 方法以在 ipad 上工作,或者可能是一种解决方法?我想要做的是让键盘在网页上弹出,因为我有 jquery 捕获击键来执行事件。但是,如果页面上没有文本框,我不知道如何让键盘弹出。现在我在页面上有了文本框,我正在尝试使用 jquery 将焦点设置到文本框,以便弹出键盘。最重要的是,我将文本框样式设置为 display:none,以便焦点转到文本框但看不到,因此该功能似乎有效。但是,ipad 上的 focus() 坏了!谁能帮帮我?

【问题讨论】:

  • 我很抱歉 是我的意思。真的没有解决方法吗?我一直在设计的网站是围绕着这项工作而建立的,所以我希望我能以某种方式实现这一点。
  • 否;因为 Apple 不希望键盘在用户需求时出现 except。不过,遗憾的是,我找不到可以证明的文件。我的 cmets 纯粹基于经验观察,这是一种耻辱。

标签: jquery ipad focus


【解决方案1】:

不幸的是,让键盘显示的唯一方法是在用户发起的事件期间。这是我最近一直在与自己抗争的事情。

在下面,ilumin 有一个很好的解决方案,但它不是唯一的。基本上,根据我的发现,只要您在用户事件(例如 mouseup 或任何触摸事件 [这可能是触摸设备的首选])内部执行 .focus() 函数调用,那么你应该没有问题。

在一定程度上我理解 Apple 为何做出此限制,但与此同时,它也让我的工作变得非常具有挑战性。

【讨论】:

    【解决方案2】:
    <input>
    <a href="#" class="label">Click</a>
    $('.label').mouseup(function(){ $('input').focus(); });
    

    它适用于我的项目。 只需使用“mouseup”捕获事件并“聚焦”输入

    通过http://www.quora.com/Mobile-Safari-iPhone-or-iPad-with-JavaScript-how-can-I-launch-the-on-screen-keyboard

    【讨论】:

    • 之所以有效,是因为您从用户启动的事件(mouseup)启动了 .focus()。当您从文档准备好或其他一些非用户发起的事件(超时等)中使用它时,它将不起作用。突出显示框出现在字段周围,但没有键盘。
    【解决方案3】:

    很遗憾,您只会在将焦点放在文本字段中时看到弹出的键盘。见this answer

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 2012-12-25
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 2016-04-30
      • 1970-01-01
      相关资源
      最近更新 更多