# util/touch

The `util/touch` module defines two simple extension events, `tap` and `dbltap`,
for detecting the respective actions on touch devices.  It also defines utility
functions for handling touch events.

```js
require(["dgrid/util/touch"], function(touchUtil){
    // Assume we have a Grid instance in the variable `grid`...
    grid.on(touchUtil.selector(".dgrid-content .dgrid-row", touchUtil.dbltap), function(event){
        var row = grid.row(event);
        // Do something with `row` here in reaction to when it is double-tapped
    });
});
```

## APIs

In addition to the `tap` and `dbltap` extension events, `util/touch` also
defines the following functions.

### Function Summary

Function | Description
-------- | -----------
`countCurrentTouches(event, node)` | Counts the number of currently active touches which fall within the given node; useful in cases where other handlers may call `stopPropagation`, thus affecting other means of counting touches.
`selector(selector, eventType, children)` | A version of the `selector` function from `dojo/on`, with an additional fix to work around issues experienced on iOS Safari.  This is used by `dgrid/Selection` and `dgrid/tree` for touch event handling.