timruffles/ios-html5-drag-drop-shim — pull request #22 by xStrom (2014-11-21 10:38:10+00:00)
Title: Fixing interaction with vanilla links.

With pull request #18 we started properly checking whether an element is draggable. However, because anchors are draggable by default, we ended up with an interesting regression bug. Links don't work anymore.

As we call the ```preventDefault()``` method on our ```touchstart``` event, the browser will no longer generate a ```click``` event. In general this is the expected behavior for HTML5 drag & drop. However the browsers initiate their native drag handling only in special cases, when the mouse is moved a certain amount after being pressed down. Without sufficient movement, it's handled as a classic click.

Ideally we would like to have similar handling via ```touchmove``` and fallback to clicks without enough movement, however I've cooked up a faster fix for now.

With this patch, anchors are still draggable by default and handled as such. However if an anchor element doesn't have the ```draggable``` attribute explicitly set, then we also simulate a ```click``` event.

This means a rather sane default where plain old anchor elements like ```Home``` will actually work as links, while also allowing people to disable this ```click``` simulation by adding an explicit ```draggable``` attribute like ```Home```.