检测输入是否被触摸(平板电脑)或点击(鼠标)

时间:2016-05-09 08:01:50

标签: javascript html keyboard click detect

我们正在开发一个Web应用程序,它可以在桌面和平板电脑(iPad,Android或表面)上启动。现在我们正在为数字输入构建自己的键盘。使用mousclick将焦点设置在输入字段上时,costum键盘打开正确。但是当您通过触摸的点击(平板电脑)将焦点设置为输入时,默认键盘也会打开。我们的想法是,检测是否有鼠标点击或触摸点击。如果触摸了点击,我们可以将 readonly =" true" 属性设置为输入,因此表格上的默认键盘不会滑入。

有没有办法检测或检查哪种"类型"点击它(触摸或鼠标)。

2 个答案:

答案 0 :(得分:8)

您可以为两个操作touchendclick定义一个事件,然后使用该事件的类型检测哪一个被触发:

$('#element-id').on('click touchend',function(e){
  if(e.type=='click')
      console.log('Mouse Click');
  else
      console.log('Touch');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="element-id">Click here</button>

希望这有帮助。

答案 1 :(得分:1)

@Zakaria Acharki

        <script type="text/javascript">
        $(document).ready(function(){
            $(".cCostumeKeyboard").on("click touchstart",function(e){
                if(e.type=="click") {
                    alert("Mouse");
                    alert(e.type);
                }
                else if(e.type=="touchend"){
                    alert("Touch");
                    alert(e.type);
                    e.preventDefault();
                    e.stopPropagation();
                }
            }); 
        });
    </script>

在触摸设备上试用此代码段。在第一次触摸输入后显示:

  • 提醒:“触动”
  • 提醒:“touchend”
  • 提醒:“鼠标”
  • 提醒:“点击”