这是有效的:
$(".my_dragging_class").each( makeDraggable($(this).get()[0]) );
var makeDraggable = function (el){
el.draggable = 'true';
el.addEventListener('dragstart', function(e){
e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('text/html', 'test');
console.log('dragstart');
},
false);
}
这不起作用:
$(".my_dragging_class").makeDraggable();
$.fn.makeDraggable(){
$(this).attr('draggable','true');
$(this).bind('dragstart', function(e){
e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('text/html', 'test');
console.log('dragstart');
},
false);
}
错误消息:我收到行e.dataTransfer.effectAllowed = 'move';
的'e.dataTransfer未定义'。我的浏览器是FireFox 10.0.2
是否可以通过这种方式使用带有jQuery的dataTransfer?
答案 0 :(得分:47)
尝试:
$.fn.makeDraggable(){
$(this).attr('draggable','true');
$(this).bind('dragstart', function(e){
e.originalEvent.dataTransfer.effectAllowed = 'move';
e.originalEvent.dataTransfer.setData('text/html', 'test');
console.log('dragstart');
},
false);
}
jQuery event object没有dataTransfer
属性。
答案 1 :(得分:6)