Backbone.Events
Events 是一个可以被mix到任意对象的模块,它拥有让对象绑定和触发自定义事件的能力。 事件在被绑定之前是不需要事先声明的,还可以携带参数。我们通过一个例子来看:
var object = {}; _.extend(object, Backbone.Events); object.bind("alert", function(msg) { alert("Triggered " + msg); }); object.trigger("alert", "www.csser.com");
bindobject.bind(event, callback, [context])
绑定 callback 函数到 object 对象。 当事件触发时执行回调函数 callback 。如果一个页面中有大量不同的事件,按照惯例使用冒号指定命名空间: "poll:start", 或 "change:selection"
当 callback 执行时提供第三个可选参数,可以为 this 指定上下文: model.bind('change', this.render, this)
绑定到特殊事件 "all" 的回调函数会在任意事件发生时被触发,其第一个参数为事件的名称。 例如,将一个对象的所有事件代理到另一对象:
proxy.bind("all", function(eventName) { object.trigger(eventName); });
unbindobject.unbind([event], [callback])
从 object 对象移除先前绑定的 callback 函数。如果不指定第二个参数,所有 event 事件绑定的回调函数都被移除。 如果第一个参数也不指定,对象所绑定的所有回调函数都将被移除。
object.unbind("change", onChange); // 只移除onChange回调函数 object.unbind("change"); // 移除所有 "change" 回调函数 object.unbind(); // 移除对象的所有回调函数
triggerobject.trigger(event, [*args])
触发 event 事件的回调函数。后续传入 trigger 的参数会被依次传入事件回调函数。