web-dev-qa-db-fra.com

jquery html 5 dragstart .on ('dragstart', function (e) {}) e.dataTransfer.setData () ne fonctionne pas

chrome throw err: Impossible d'appeler la méthode 'setData' de indéfini, je trouve que le e n'est pas égal à window.event (il n'a pas propert dataTransfer); les deux ont de très grandes différences

Je trouve les deux presque égaux dans l'événement de clic.

J'ai utilisé http://code.jquery.com/jquery-latest.js .

Je n'utilise pas la fonction glisser, je veux juste savoir pourquoi. c'est une nouvelle fonctionnalité en html 5, jquery toujours derrière?. ou l'équipe jquery ne veut pas le supporter ?? ou une autre raison

23
zsytssk

Dans la fonction de rappel, vous obtenez un wrapper jQuery sur un événement natif. Utilisez la propriété originalEvent de l'argument passé:

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

P.S. n'oubliez pas de régler le draggable="true" attribut de l'élément à faire glisser.

61
John Doe

jQuery crée son propre objet événement et il n'a pas encore de propriété dataTransfer. Cela ajoute dataTransfer à l'objet événement.

$ .event.props.Push ('dataTransfer');

2
two7s_clash