title: Ignore jQuery hover (mouseenter, mouseleave) on touch devices
body: <p>Having neither mouse nor pointer, the concept of hovering on-screen elements is not really applicable for touch devices. With many web sites relying on JavaScript hover events navigation or other purposes, some touch devices<sup>1</sup> implements the <code>mouseenter</code> to be fired upon a single tap. If an event handler is also bound to the <code>click</code> this will only be raised on a second tap on the element.</p>
  
  <p>Since jQuery's <code>hover()</code> function internally uses <code>mouseenter</code> and <code>mouseleave</code>, elements with both <code>hover()</code> and <code>click()</code> registrations requires two taps to trigger the latter<sup>2</sup>. For many use cases, this is exactly what you will want to happen. However, in applications where the <code>hover()</code> handling only adds emphasis (tooltip, glow, etc.) to the hovered element, it might make more sense to skip the event all together touch devices, going strait to the <code>onclick</code> handler.</p>
  
  <p>I know how to listen specifically for <code>touchstart</code> and <code>touchend</code> events, allowing me to tailor the touch user experience. This is a valid solution to my problem, but I am hoping that there might be an "easier" way around this. I am imagining a method similar to <code>hover()</code> in its signature, only implemented in a way that only attaches the provided event handlers on non-touch devices.</p>
  
  <p>Does jQuery have such method? Any plugins? Or am I overlooking something here?</p>
  
  <hr>
  
  <p><sup>1</sup> Behavior confirmed on iPad, iPhone and a few Android handsets.</p>
  
  <p><sup>2</sup>
  Run this <a href="http://jsfiddle.net/juYf8/" rel="noreferrer">JsFiddle demo</a> on a desktop vs touch device to see what I am talking about.</p>