В "drop" нужен event.preventDefault() в начале, "переход по ссылке" в данном случае это действие по умолчанию, его нужно предотвратить. Не по теме, "text/plain" в dataTransfer, у меня в IE не работал, пришлось заменить на "text", метод "bind" уже морально устарел, c версии 1.7 используют "on". Необходимый минимум на чистом JS, чтобы Drag&Drop работал, такой:
dragElement.draggable = true; // или атрибут draggable="true"
dragElement.addEventListener('dragstart', function (e) {
e.dataTransfer.setData('text', ''); // Firefox
// ...
});
dropElement.addEventListener('dragover', function (e) {
e.preventDefault();
// ...
});
dropElement.addEventListener('drop', function (e) {
e.preventDefault();
// ...
});
Пример с дополнительными событиями
здесь, кроме "drag" (постоянно вызывается пока двигаешься) и "dragexit" (у меня нигде не работал кроме Firefox).