Javascript 将事件绑定到下划线/主干中的动态对象
我试图弄清楚如何在underline.js/backbone.js中侦听尚未原型化或不是dom对象的对象上的自定义事件 例如: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
//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)在其帖子()中所述