javascript - 在输入之间保持 iPad 键盘向上

标签 javascript jquery ios ipad

现在,我正在使用一些 jQuery 在输入失去焦点时隐藏 iPad 键盘。

    jQuery(function($) {
       $(document).on('touchend', function(e) {
          document.activeElement.blur();
       });
    });

但是,在结帐等过程中,当用户在输入之间单击时,键盘会消失,并且每次输入更改时键盘都会重新出现。有没有办法将上面的 jquery 代码更改为仅在文档上触摸的位置没有文本输入类型的情况下模糊事件元素?

最佳答案

嗯,我之前没有在 iPad 上尝试过这个,所以我不确定它是否有效,但你可以检查 document.activeElement 的类型确定它是文本字段还是文本区域字段。如果不是,则执行您的 blur() 。代码如下:

jQuery(function($) {
    $(document).on('touchend', function(e) {
        setTimeout(function() {
            var currentElement = document.activeElement;

            if ($(currentElement).not("textarea, :text").length > 0) {
                currentElement.blur();
            }
        }, 100);
    });
});

setTimeout在检查当前元素是什么之前,需要确保焦点已转移到下一个元素(立即执行此操作,将返回 <body> 作为 activeElement )。

这种通用方法(即识别当前 activeElement 的类型)适用于桌面浏览器环境,并且它应该适用于 iPad,但是,就像我之前说的,我没有机会在那里测试它,所以这更像是一个“可能的解决方案”而不是实际的“答案”,直到你尝试一下,看看它是否适合你。 :D

关于javascript - 在输入之间保持 iPad 键盘向上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23249492/

相关文章:

javascript - Axios 拦截在第一次调用时不应用来自 localStorage 的 token

javascript - 如何在 IBM Worklight 中重定向到同一页面但不同的 div/ View ?

javascript - Gmail 的 Chrome 扩展程序

javascript - 尝试通过拖放 Jquery 文件设置文件输入值

javascript - 更改设备方向时 CSS 失败

javascript - jQuery Dim 或在悬停时更改其他列表项

ios - UIAlertController 的呈现速度非常慢

ios - 如何直接分享文字和图片到whatsapp

ios - objective-c : Format standard Pubdate in rssfeed for iOS

jquery - 自动 jquery 效果(不需要)