Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 让iPad键盘在输入之间保持竖直_Javascript_Jquery_Ios_Ipad - Fatal编程技术网

Javascript 让iPad键盘在输入之间保持竖直

Javascript 让iPad键盘在输入之间保持竖直,javascript,jquery,ios,ipad,Javascript,Jquery,Ios,Ipad,现在,当输入失去焦点时,我使用jQuery隐藏iPad键盘 jQuery(function($) { $(document).on('touchend', function(e) { document.activeElement.blur(); }); }); 但是,在诸如签出之类的过程中,当用户从一个输入点单击到另一个输入点时,键盘将消失,并且每次更改输入点时,键盘都会重新出现。有没有办法将上面的jquery代码更改为,如果文档

现在,当输入失去焦点时,我使用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);
    });
});
在检查当前元素是什么之前,需要使用
设置超时
,以确保焦点已转移到下一个元素(立即执行此操作将返回
作为
活动元素


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

不幸的是,这样做会使它在iPad上隐藏键盘输入模糊。不知道为什么,我责怪史蒂夫·乔布斯。为此而发展是一场噩梦。但是谢谢你的努力=普威尔射击。从理论上讲,我认为这是可行的(基于我对当前代码行为的理解)。哦,好吧,我很想看看这个问题是怎么解决的。祝你好运