Skip to content Skip to sidebar Skip to footer

Unified And Transparent Pointer Events In JQuery

I have a bootstrap .btn that I want to toggle with the mouse click. The problem is that the response is way too slow on tablets, since the click arrives 300 ms after the touchstart

Solution 1:

Utilize Modernizr for handling actions based on the device, etc. It provides great cross-browser/platform support without the need to sniff User Agents and the like. Instead, it uses feature detection.

You can just use the Modernizr functions with jQuery's $(document).ready(function()});

$(function(){
    if (Modernizr.touch){
       // bind to touchstart, touchmove, etc and watch `event.streamId`
    } else {
       // bind to normal click, mousemove, etc
    }
});

This code has been taken straight from the Modernizr Documentation

Also, here's another resource for performing touch tests


Solution 2:

Late to the party, but note that jQueryMobile also has similar touch detection: if ( $.mobile.support.touch ) {... And no, IMHO, you are not missing anything obvious :), cross-platform / cross-device / touch-friendly features are still harder than they should be. For example, today I'm looking at a win8 surface tablet: touch-screen and a mouse. There are cases where i'd like to know which device was used. event.originalEvent.type should differentiate between tap and click, right? wrong :(.


Post a Comment for "Unified And Transparent Pointer Events In JQuery"