Подтвердить что ты не робот

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

chrome throw err: Не удается вызвать метод setData из undefined, Я нахожу, что e не равно window.event(он не имеет значения dataTransfer), у обоих есть очень большие разные

В событии click я получаю почти равное значение.

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

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

4b9b3361

Ответ 1

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

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

P.S. dont 'забыть установить атрибут draggable="true" для элемента, который нужно перетащить.

Ответ 2

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

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