Backbone Events 事件

Backbone可以给自定义对象绑定事件,利用trigger手动触发事件,并且可以传参。

    var obj = {};
    _.extend(ob,Backbone.Events);  //扩展backbone event事件
    obj.on('event',function(msg){  //给obj对象绑定event事件
        alert('event'+msg);
    });
    obj.trigger('event',"触发")    //手动触发obj的event事件

On 事件

类似于jquery的绑定事件,如果有不同的事件,可以通过冒号来命名

 

var Model = Backbone.Model.extend({

});    //建立一个模型
var obj = new Model;   
obj.on('change:name', function() {    //给obj添加绑定事件 xxxx:xxxx
	alert('I hava changed!')
})
obj.trigger('change:name');  //手动触发obj的绑定事件

还有一个特殊的事件——all,绑定all事件时任何事件都能触发这个事件。

obj.on('all', function() {
	alert('I have occured!')
})

Off 事件

取消on绑定事件

obj.off('change:name');
obj.off('all');
obj.off('change:name'); //删除模型上的所有事件

Once 事件

只能触发一次。

listenTo 事件

让一个对象监听另一个对象上的事件

var Model = Backbone.Model.extend({

});
var obj = new Model;
obj.on('change:name', function() {
	alert('I hava changed!')
})
var obj2 = new Model;
obj2.listenTo(obj,'change:name',function(){
	alert('已监控到obj事件触发');
})
obj.trigger('change:name');

stopListening 事件

停止监听事件

obj2.stopListening();

listenToOnce 事件

同理,执行一次就被移除啦。

 

在视图中增加点击事件代码

var ClickView = Backbone.View.extend({
	el:'body',
	events:{
		'click #test':'alert'
	},
	alert:function(){
		alert('alert');
	}
})

var view = new ClickView();

  给id为test的元素加点击事件alert,这样就可以在视图中给不同元素添加不同的事件了。

 

你可能感兴趣的:(Backbone Events 事件)