Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 mottie虚拟键盘键之间的小空间时,有没有办法防止元素的焦点模糊?_Javascript_Html_Virtual Keyboard - Fatal编程技术网

当用户单击javascript mottie虚拟键盘键之间的小空间时,有没有办法防止元素的焦点模糊?

当用户单击javascript mottie虚拟键盘键之间的小空间时,有没有办法防止元素的焦点模糊?,javascript,html,virtual-keyboard,Javascript,Html,Virtual Keyboard,我有一个简单的web应用程序,在特定情况下我很难处理mottie虚拟键盘 我的屏幕有许多字段。如果用户单击其中一个文本框(虚拟键盘绑定到每个文本框),聚焦功能将隐藏页面上的其他元素并放大当前字段/标签 虚拟键盘在这种状态下工作得很好。输入文本后,单击“接受”或单击虚拟键盘矩形外的区域,焦点模糊,键盘消失,所有字段再次显示 我遇到的问题是,当用户单击虚拟键之间的微小空间或虚拟键盘矩形内的任何非键区域时,键盘保持可见(应该如此),但所有其他元素都会在键盘后面的屏幕上闪烁,直到按下为止。因此,下击会使

我有一个简单的web应用程序,在特定情况下我很难处理mottie虚拟键盘

我的屏幕有许多字段。如果用户单击其中一个文本框(虚拟键盘绑定到每个文本框),聚焦功能将隐藏页面上的其他元素并放大当前字段/标签

虚拟键盘在这种状态下工作得很好。输入文本后,单击“接受”或单击虚拟键盘矩形外的区域,焦点模糊,键盘消失,所有字段再次显示

我遇到的问题是,当用户单击虚拟键之间的微小空间或虚拟键盘矩形内的任何非键区域时,键盘保持可见(应该如此),但所有其他元素都会在键盘后面的屏幕上闪烁,直到按下为止。因此,下击会使选定元素的焦点模糊,只会在释放下击后立即再次聚焦


我希望虚拟键盘的某些参数能使虚拟键盘的任何非按键部分成为点击的死区,但我一直没能找到它。有人有这方面的经验吗?谢谢

如果要将焦点返回到文本框,可以尝试以下方法():


我一开始是用“点击”键,但直到鼠标释放后,它才聚焦。我不知道为什么你会看到所有东西都淡出(可能是css
:active
设置?),但这几乎可以立即恢复焦点。

如果你想将焦点返回到文本框,那么可以尝试类似的方法():


我一开始是用“点击”键,但直到鼠标释放后,它才聚焦。我不知道为什么你会看到所有东西都淡出(可能是css
:active
设置?),但这几乎可以立即恢复焦点。

在键盘的onclick/mousedown处理程序中,添加e.stopPropagation()这将阻止任何包含或基础的兄弟姐妹接收单击事件。请在小提琴中生成错误或其他任何错误。当我们试图找出可能使用的代码类型时,我们无法仅用一堆文本来帮助您…在键盘的onclick/mousedown处理程序中,添加e.stopPropagation(),这将阻止任何包含或底层同级接收单击事件。请以小提琴或其他方式生成错误。当我们试图找出可能使用的代码类型时,我们不能仅用一堆文本来帮助您。。。
$(function() {
  $('#keyboard').keyboard({
      visible: function(e, keyboard, el) {
        keyboard.$keyboard.on('mousedown', function() {
          setTimeout(function() {
            keyboard.$preview.focus();
          }, 100);
        });
      }
    });
});