jquery html 5 dragstart .on('dragstart',function(e){}) e.dataTransfer.setData() не работает

Chrome throw err: Невозможно вызвать метод 'setData' из неопределенного, я обнаружил, что e не равно window.event(он не имеет свойства dataTransfer), оба имеют очень большой разный

Я нахожу оба почти равными в событии щелчка.

Я использовал http://code.jquery.com/jquery-latest.js.

Я не использую функцию перетаскивания, я просто хочу знать, почему. это новая функция в HTML 5, JQuery еще за этим? или команда jquery не хочет поддерживать это?? или какая-то другая причина

2 ответа

Решение

В функции обратного вызова вы получаете оболочку jQuery поверх собственного события. Использовать originalEvent свойство передаваемого аргумента:

$('...').on('dragstart', function (event) {
    event.originalEvent.dataTransfer.setData('...', '...');
});

PS Не забудьте установить draggable="true" атрибут для перетаскиваемого элемента.

jQuery создает свой собственный объект события, и у него пока нет свойства dataTransfer. Это добавляет dataTransfer к объекту события.

$.Event.props.push('DataTransfer');

Другие вопросы по тегам