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,这样就可以在视图中给不同元素添加不同的事件了。