用来听一个事件?

时间:2014-06-05 13:36:39

标签: javascript jquery

我有一个叫另一个班级的班级。

使用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();
});

1 个答案:

答案 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