在Javascript中使用命名空间时,dataTransfer为null
dataTransfer is null when using namespace in Javascript
我用Javascript编写了一些函数。为了防止名称冲突,我决定将它们放入名称空间。在我看来一切都很好,但drop
事件现在没有dataTransfer
对象。原始代码如下:
var dropBox;
function init(){
dropBox = $('#img-container');
dropBox.bind({
dragenter: function() {
$(this).addClass('highlighted');
return false;
},
dragover: function() {
return false;
},
dragleave: function() {
$(this).removeClass('highlighted');
return false;
},
drop: function(e) {
var dt = e.originalEvent.dataTransfer; //IT IS NOT NULL
displayFiles(dt.files);
$(this).removeClass('highlighted');
return false;
}
});
showDragDropText(true);
if(window.FileReader == null) alert('Your browser doesn''t support File API!');
}
将其放入名称空间后:
var mynamespace = {
dropBox: null,
init : function(){
dropBox = $('#img-container');
dropBox.bind({
dragenter: function() {
$(this).addClass('highlighted');
return false;
},
dragover: function() {
return false;
},
dragleave: function() {
$(this).removeClass('highlighted');
return false;
},
drop: function(e) {
var dt = e.originalEvent.dataTransfer; //dataTransfer IS NULL!!!
console.log(e);
mynamespace.displayFiles(dt.files);
$(this).removeClass('highlighted');
return false;
}
});
mynamespace.showDragDropText(true);
if(window.FileReader == null) alert('Your browser doesn''t support File API!');
}
我做错了什么?
我找到了解决方案。我必须在我的命名空间中绑定drop
事件,如下所示:
dropBox.bind("dragenter.mynamespace",function(){
$(this).addClass('highlighted');
return false;
});
dropBox.bind("dragover.mynamespace",function(){
return false;
});
dropBox.bind("dragleave.mynamespace",function(){
$(this).removeClass('highlighted');
return false;
});
dropBox.bind("drop.mynamespace",function(e){
var dt = e.originalEvent.dataTransfer;
mynamespace.displayFiles(dt.files);
$(this).removeClass('highlighted');
return false;
});
现在它工作得很完美!
相关文章:
- 数组在递归方法中设置为null
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 无法获取属性'selectedIndex'的未定义引用或null引用
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 来自文本输入null的html javascript变量
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- php代码在textbox更改事件上显示null
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- 为什么localStorage[“..”]未定义,而localStorage.getItem(“..”)为null
- ajax在输入等于null时进行检查
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- contentWindow.document.body is null
- 在经过DATE验证的列中创建null值
- 为什么是文档.旧版应用程序中的DOM-object.properties为null
- if(foo!==null)的计算结果为true,即使foo为null
- php函数的ajax html$_POST值返回null
- 在Javascript中使用命名空间时,dataTransfer为null