首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >绑定本机html5 dragstart事件处理程序并使用jQuery访问dataTransfer

绑定本机html5 dragstart事件处理程序并使用jQuery访问dataTransfer
EN

Stack Overflow用户
提问于 2012-03-05 20:04:16
回答 2查看 15.6K关注 0票数 16

这是工作的:

代码语言:javascript
复制
$(".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);
}

这不起作用:

代码语言:javascript
复制
$(".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 is undefined‘。我的浏览器是FireFox 10.0.2

可以通过这种方式在jQuery中使用dataTransfer吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-05 21:36:03

尝试:

代码语言:javascript
复制
$.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属性。

票数 47
EN

Stack Overflow用户

发布于 2012-12-04 18:12:45

jQuery event object没有dataTransfer属性...没错,但我们可以尝试一下:

代码语言:javascript
复制
jQuery.event.props.push('dataTransfer');

kr,zara

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9566322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档