First off, your probably don't really want to use touchstart. In most cases, it is best to use vclick.
touchstart only handles touch events. It will not work if the user has a mouse. (Which, although rare on mobiles, is a possibility. And of course you leave out desktop browsers, if that matters.)
Also, touchstart triggers the moment the user touches, which usually is not desirable. touchstart is used internally to detect the start of scrolling, you can see this can be a problem... Is the user scrolling or are they selecting? At touchstart, you just don't know yet.
If you really do want to trigger when the user touches, use vmousedown, which provides both touch and mouse support. I do use this for buttons on fixed headers and footers. I do like the every better responsiveness vs vclick, but it is only practical on fixed elements. You do have to be careful about buttons that "sweep" under the users finger during a transition that might be accidentally triggered. So, it is mostly useful for fixed tabbars. Not so much in headers, unless you are really careful. (Need some code to lock it out during transitions.)
vclick triggers when the user lifts their finger, but does not suffer the additional 400mSec delay on iOS that click does.
I dunno about triggering click. I don't handle it this way. Others might be able to comment on that approach. I find it best to manage any user feedback yourself. Use data-ajax="false" in addition to calling preventDefault(). You can add ui-active class or some other class to indicate selection, and clear this on pagebeforeshow, and then use $.mobile.changePage() or perform whatever other action you want the link to perform.