En el pasado, el mejor método para verificar la presencia de un mouse era buscar touch event support. Sin embargo, Chrome de escritorio ahora admite eventos táctiles, lo que hace que esta prueba falle.¿Cómo puedo determinar de manera confiable si un navegador admite eventos de mouse over?
¿Hay alguna manera de probar directamente el soporte de evento de mouseover, en lugar de inferirlo en función de la presencia de eventos táctiles?
Resolución: Aquí está el código que funcionó, basado en la respuesta de 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();
});
});
Gran! Intentó con el libro de jugadas (RIM OS), y funciona bien por primera vez, pero en la actualización de la página, detecta mousemove (!?). Sin embargo, adjuntar la prueba a algún #id en lugar de cuerpo funciona perfectamente. – MaxD