Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么主干';s事件对象是否缺少属性?_Jquery_Javascript Events_Backbone.js - Fatal编程技术网

Jquery 为什么主干';s事件对象是否缺少属性?

Jquery 为什么主干';s事件对象是否缺少属性?,jquery,javascript-events,backbone.js,Jquery,Javascript Events,Backbone.js,我正在开发一些拖放功能,并通过标准主干方式附加事件: events: { 'dragenter': 'dragEnter', 'dragend': 'dragEnd' ...., ..... } 我在函数中注意到,传递给它的事件对象不包含html5规范中概述的某些属性 具体而言,dataTransferobj缺失 我创建了一个快速的演示。只要在上面拖动一个文件或其他东西,就能在日志中看到它 我的问题是为什么会发生这种情况?我翻遍了报纸,似乎找不到 主干事件实际上将事件绑定到您的Dom

我正在开发一些拖放功能,并通过标准主干方式附加事件:

events: { 
 'dragenter': 'dragEnter',
 'dragend': 'dragEnd'
 ....,
 .....
}
我在函数中注意到,传递给它的
事件
对象不包含html5规范中概述的某些属性

具体而言,
dataTransfer
obj缺失

我创建了一个快速的演示。只要在上面拖动一个文件或其他东西,就能在日志中看到它


我的问题是为什么会发生这种情况?我翻遍了报纸,似乎找不到

主干事件实际上将事件绑定到您的Dom库(jQuery、Zepto…),因此如果您想要可拖动的事件,就应该加载jqueryui

如果您使用的是主干事件,主干会在实际事件的顶部放置一个层。 如果要访问原始事件,必须使用:event.originalEvent


在OriginaleEvent中,您可以找到dataTransfer。

虽然它确实使用那些DOM操纵器绑定了事件,但简单地添加jqUI并不能解决问题,至少在我的测试中不会。因为dataTransfer是本机的,所以您可以通过回调来访问它:
dragEnter:function(e){dt=e.OriginaleEvent.dataTransfer}
这就是我所说的将事件绑定到jQueryAh的意思。甚至没有意识到存在
originalEvent
。请尝试删除主干层以查看问题是否在jQuery自身中:
$(“#dom元素”).bind(“dragenter”,函数(事件){console.log(“event”,event);})@fguillen是的,正常的js事件绑定也可以工作。我只是好奇它为什么会发生。我不知道,主干看起来像是委托给了jQuery事件绑定,所以主干的事件系统应该和jQuery的事件系统一样好:/这是一个比已经被接受的答案好得多的答案