web-dev-qa-db-ja.com

jquery html 5 dragstart .on( 'dragstart'、function(e){})e.dataTransfer.setData()が機能しない

chrome throw err:undefinedのメソッド「setData」を呼び出すことができません、eがwindow.eventと等しくないことがわかります(dataTransferを所有していない);両方とも非常に大きく異なる

クリックイベントでは両方がほぼ等しいと思います。

http://code.jquery.com/jquery-latest.js を使用しました。

ドラッグ機能は使用しません。理由を知りたいだけです。 html 5、jqueryの新機能であり、まだその背後にあります。またはjqueryチームはそれをサポートしたくないのですか?またはその他の理由

23
zsytssk

コールバック関数では、ネイティブイベントのjQueryラッパーを取得します。渡された引数のoriginalEventプロパティを使用します。

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

追伸ドラッグする要素にdraggable="true"属性を設定することを忘れないでください。

59
John Doe

jQueryは独自のイベントオブジェクトを作成しますが、dataTransferプロパティはまだありません。これにより、dataTransferがイベントオブジェクトに追加されます。

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

2
two7s_clash