`

Backbone 或 jQuery 出错,异常:Uncaught TypeError: object is not a function

阅读更多

原文及更多内容,在这里:http://yysource.sourceforge.net/?p=72

如果用chrome调试的时候发现异常定位在如下代码处:

 

			try {
				state = 1;
				transport.send( requestHeaders, done );
			} catch (e) {
				// Propagate exception as error if not done
				if ( state < 2 ) {
					done( -1, e );
				// Simply rethrow otherwise
				} else {
					throw e;
Uncaught TypeError: object is not a function
				}
			}

那么,对于backbone来说,就是在 events:{} 中分配事件处理函数的时候,有函数是没有定义的。比如:

 

 

window.SomeView = Backbone.View.extend({
	events: {
		"click a": "onA",
		"click li": "onB",
	},
	onA: function (e) {
		// some code here...
	},
});

这里只定义了onA()函数,而没有onB,这样一来,jQuery在绑定函数的时候,就会发现onB没有定义,于是就抛出如题所示的异常。

 

同理,如果直接用jQuery的on,bind等来绑定事件的时候,也没有实际的函数来对应,也会抛出同样的异常。

原文及更多内容,在这里:http://yysource.sourceforge.net/?p=72

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics