p._initEvents = function() {
$(window).on('drop', this.onDrop.bind(this)).on('dragover', this.onDragOver);
};
p.onDrop = function(e) {
e.preventDefault();
var files = e.originalEvent.dataTransfer.files;
$.each(files, function(index, file){
this.showTemplate();
});
};
p.showTemplate = function() {
console.log('show template');
};
我正在尝试运行this.showTemplate(),但错误说它未定义,我相信它与绑定它有关。
我已经为onDrop方法绑定了这个,但是我不确定在循环中访问它的最佳方法是什么?
答案 0 :(得分:4)
你可以做的一件事是在$.each()
函数之外声明一个这个变量......
p.onDrop = function(e) {
e.preventDefault();
var myThis = this;
var files = e.originalEvent.dataTransfer.files;
$.each(files, function(index, file){
myThis.showTemplate();
});
};