Cleaned up comments for consistency and understanding.
Changed the way we fix the iOS issue. Rather than calling preventDefault on touchstart, which results in scrolling being disabled, we implement our own version of the 300ms delay on touchend to ignore all mouse events in that time and to ensure a click event is fired at the end of the 300ms - whether by the browser or by pointy.