2014-06-30 34 views

回答

0

這裏的參數'name'表示要綁定到對象的事件名稱(第一個參數)。如果name參數不支持多事件註冊,則函數eventsApi將返回true(Backbone的事件API僅支持字符串和對象表示格式,例如:「change click」,{change:action,click:action2})。

如果傳遞非字符串或非對象名稱參數,事件API將爲'單個事件'註冊事件處理程序。在你的情況下,你嘗試註冊一個名爲undefined的自定義事件,backbone將把它視爲單個事件處理程序註冊。

綜上所述,返回的布爾值決定事件寄存器是否需要執行'多事件註冊'。

.... 
on: function(name, callback, context) { 
    //multi-events registration will be processed if the eventsApi function call return 'false' 
    if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this; 
    this._events || (this._events = {}); 
    var events = this._events[name] || (this._events[name] = []); 
    events.push({callback: callback, context: context, ctx: context || this}); 
    return this; 
}, 
+0

謝謝!但似乎事件註冊已經生效。 [jsfiddle](http://jsfiddle.net/5xAkM/) – Allenice

+0

感謝您的提醒和解答已更新。你可以參考它:) – Chickenrice

相關問題