Держу пари, что это не сработало в IE8, потому что ни IE8, ни IE9 не полностью поддерживают перетаскивание HTML5, это было добавлено только в IE10 Developer Preview 2 .HTML5 API основан на реализации перетаскивания в IE5, но есть некоторые различия.Наиболее уместно, что IE9 и ранее не поддерживают атрибут draggable
для элементов - в IE9 можно перетаскивать только те вещи, которые можно перетаскивать по умолчанию: выбор текста, ссылки и изображения.
чтобы работать в IE9 (или IE8), вам нужно добавить ссылку в ваш HTML (и эта ссылка должна иметь href
):
<div id="mydiv"><a draggable="true" href="#">DnD this thing!</a></div>
Ваш JavaScript должен работать, как и ожидалось, с небольшимимодификации:
$('#mydiv')
.bind('selectstart', function(e) {
// Prevent text selection
return false;
})
.bind('dragstart', function(e) {
e.originalEvent.dataTransfer.setData("Text", $(e.target).closest('div').attr('id'));
console.log('dragstart');
})
.bind('drag', function(e) {
console.log('drag');
})
.bind('dragend', function(e) {
console.log('dragend');
})
.bind('click', function(e) {
return false;
});
Вот пример, который я тестировал в Firefox и IE9 .