Javascript 将事件绑定到下划线/主干中的动态对象

Javascript 将事件绑定到下划线/主干中的动态对象,javascript,jquery,backbone.js,underscore.js,backbone-events,Javascript,Jquery,Backbone.js,Underscore.js,Backbone Events,我试图弄清楚如何在underline.js/backbone.js中侦听尚未原型化或不是dom对象的对象上的自定义事件 例如: //this is inside a view object play: function(arg) { this.a = this.image(this.model.a); this.a.bind("ready",start,this);//<--- causes error this.b = this.image(this.mode

我试图弄清楚如何在underline.js/backbone.js中侦听尚未原型化或不是dom对象的对象上的自定义事件

例如:

//this is inside a view object
play: function(arg)
{
    this.a  = this.image(this.model.a);
    this.a.bind("ready",start,this);//<--- causes error
    this.b  = this.image(this.model.b);
    this.b.bind("ready",start,this);//<--- causes error
    function start()
    {
        // do some stuff in here
    }
    //some more stuff

},
image: function(args)
{
    // load the image, get its data, attach to original model then return it.
    var args    = args;
    var img     = $("<img/>");
    var t       = this;
    img.load(function(){
        t.pasteboard.drawImage(this,0,0);
        args.imageData = t.pasteboard.getImageData(0,0,args.width,args.height);
        args.ready = true;
        args.trigger("ready",args);
    }).attr("src",args.src).hide();
    return args;
},
错误是:

Uncaught TypeError: Object #<Object> has no method 'bind'
uncaughttypeerror:对象#没有方法“bind”
当然,对象上没有约束是有道理的,但有人对此有好的解决方案吗

非常感谢
A

如果要绑定到对象,则需要使其从主干.Events对象扩展

假设您创建了一个新对象

var o = {};
无法绑定到它,
o.bind()
不存在

除非你从backbone.Events扩展

var o = _.extend({}, Backbone.Events);

o.bind('myCustomEvent', function(){
    alert('triggered!');
});

o.trigger('myCustomEvent');
如果要开始绑定数百个对象,我不确定这对性能意味着什么。 所以在使用之前,你应该先测试一下


这也是用于在应用程序中创建全局事件聚合器的技术,正如德里克·贝利(Derick Bailey)在其文章()中所述。

如果要绑定到对象,则需要使其从主干.Events对象扩展

假设您创建了一个新对象

var o = {};
无法绑定到它,
o.bind()
不存在

除非你从backbone.Events扩展

var o = _.extend({}, Backbone.Events);

o.bind('myCustomEvent', function(){
    alert('triggered!');
});

o.trigger('myCustomEvent');
如果要开始绑定数百个对象,我不确定这对性能意味着什么。 所以在使用之前,你应该先测试一下

这也是在应用程序中创建全局事件聚合器所使用的技术,正如德里克·贝利(Derick Bailey)在其帖子()中所述