以前は、マウスの存在を確認する最良の方法は、タッチイベントのサポートを探すことでした。ただし、デスクトップChromeはタッチイベントをサポートするようになったため、このテストは失敗に終わります。
タッチイベントの存在に基づいて推測するのではなく、マウスオーバーイベントのサポートを直接テストする方法はありますか?
解決策: AshleysBrainからの回答に基づいて、機能したコードは次のとおりです。
jQuery(function()
{
// Has mouse
jQuery("body").one("mousemove", function(e)
{
attachMouseEvents();
});
// Has touchscreen
jQuery("body").one("touchstart", function(e)
{
// Unbind the mouse detector, as this will fire on some touch devices. Touchstart should always fire first.
jQuery("body").unbind("mousemove");
attachTouchEvents();
});
});