Как я могу надежно определить, поддерживает ли браузер события наведения указателя мыши?

В прошлом лучшим методом проверки наличия мыши было поиск поддержки событий касания . Однако настольный 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();
    });
});

8
задан Community 23 May 2017 в 11:51
поделиться