我有一个叫另一个班级的班级。
使用jquery .on()如何从父类中监听子类中发生的事件。
我知道javascript中没有类,我已经通过原型设置了它。
这就是我所拥有的,但我得到了:
Uncaught TypeError: undefined is not a function
以下是代码:
this.fileDrop = new lp.FileDrop();
this.on("test", function(){alert('a'});
这是我的班级:
(function () {
"use strict";
var Loon = function () {
this.init();
};
p.init = function () {
this.fileDrop = new lp.FileDrop();
this.on("test", function () {
console.log('a')
});
};
lp.Loon = Loon;
}(window));
var loon;
$(function () {
loon = new lp.Loon();
});
答案 0 :(得分:1)
我已经看到大致相同的问题现在回来了几次,前一段时间是already answered by Jack但他忘了在他的例子中使用bind,所以this
没有解决你的问题喜欢它。希望以下有所帮助:
function DropBox(mainClassInstance){
this.delegate=mainClassInstance;
$(document.body).on("click",this.drop.bind(this));
}
DropBox.prototype.drop=function(e){
console.log("window event triggered in dropbox instance");
this.delegate.drop(e);
}
function MainClass(){
this.dropBox=new DropBox(this);
}
MainClass.prototype.drop=function(){
console.log("drop in mainclass, dropbox is:",this.dropBox);
}
var m = new MainClass();
以下答案可以帮助您在JavaScript中创建对象:https://stackoverflow.com/a/16063711/1641941