这是工作:
$(".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',false); }
错误信息:我收到e.dataTransfer.effectAllowed =’move’的行’e.dataTransfer未定义’。我的浏览器是FireFox 10.0.2
这样可以使用jQuery数据传输吗?
解决方法
尝试:
$.fn.makeDraggable(){ $(this).attr('draggable',function(e){ e.originalEvent.dataTransfer.effectAllowed = 'move'; e.originalEvent.dataTransfer.setData('text/html',false); }
jQuery event object没有dataTransfer属性。