GithubHelp home page GithubHelp logo

as-you-like / jquery.tap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sweyrick/jquery.tap

0.0 1.0 0.0 989 KB

A jQuery plugin that creates a click alternative for touch enabled browsers

Home Page: http://aarongloege.github.com/jquery.tap/

License: MIT License

jquery.tap's Introduction

jQuery.tap

http://aarongloege.github.com/jquery.tap/ A jQuery plugin that creates a click alternative for touch enabled browsers.

Why?

Click events on touch devices do not work the best. There is a ~300ms delay from when you release your finger to the time the click event is triggered. This behavior is not desired. :(

How do I use it?

What is nice about this plugin, and what makes it different from other plugins, is that it is globally triggered simply by including the script. No need to enable it on an element you with to capture it from.

// jQuery.on method
$('.element').on('tap', onTapHandler);
$('.element').on('tap', dataObject, onTapHandler);

And, because the event is bound through jQuery's on API, you can take advantage of namespaces and delegate events:

// Namespace
$('.element').on('tap.widget', onTapHandler);
$('.element').on('tap.widget', dataObject, onTapHandler);

// Delegate
$('.element').on('tap', '.child-element', onTapHandler);
$('.element').on('tap', '.child-element', dataObject, onTapHandler);

// Together now
$('.element').on('tap.widget', '.child-element', onTapHandler);
$('.element').on('tap.widget', '.child-element', dataObject, onTapHandler);

The tap event will also bubble.

What About Desktop?

If the browser does not support touch events, then the regular mouse events to create a tap event. No need for if/else statements, jQuery.tap will do that for you.

Now What About Browsers That Support Both Touch and Mouse?

Gotcha covered. jQuery.tap listens for both touch and mouse events and will use the first event that is fired to detect a tap.

Caveats

Click events

There is currently not a way to stop the click event from triggering after touchstart/touchend and mousedown/mouseup events if the tap event is canceled with preventDefault(). The click event will still fire, but preventDefault will be called on that click event if preventDefault was called on the tap event.

Tests

You can view an integration test here and you can test support for yourself here.

Licence

jQuery.tap is licensed under the MIT license.

jquery.tap's People

Contributors

aaronholsonege avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.