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

web*_*.ic 10 html javascript keyboard click detect

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

有没有办法检测或检查点击的"类型"(触摸或鼠标).

Zak*_*rki 7

您可以为这两个操作定义事件touchend,click然后使用事件类型检测触发的事件:

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

希望这可以帮助.

  • 嗨,扎卡里亚(Zakaria):)首先,感谢您的快速回答。我尝试了您的代码。我只是将id更改为一个类,并将该类添加到两个输入中,还将console.log打印更改为警报,以查看平板电脑上发生了什么。在桌面上可以正常工作。单击输入后,屏幕上将显示警报“鼠标单击”。在平板电脑上,首先出现警报“ Touch”,而在我关闭它之后,第二个警报“ Mouse click”也出现在屏幕上。我认为在触摸事件之后,它还会发送一个点击事件。我在警报“ Touch”之后尝试了e.preventDefault。没有帮助 你有主意吗 (2认同)