以下是我通过将“this”绑定到javascript中的click事件而得到的错误。 js的格式是Jaml / Mooml,有些人可能不熟悉,但我向你保证语法是正确的。我一直以同样的方式将“this”绑定到许多事件上,这是我第一次看到这个错误所以我希望有些mootools,jaml或javascript专家能够从错误和代码中导出一个解决方案。
Uncaught TypeError: Object [object Object] has no method 'get'
Mooml.engine.tags.div.Mooml.engine.tags.div.events.click:relay(a)
bubbleUpmootools-core-1.4.1.js:3948
delegation.addEvent.delegatormootools-core-1.4.1.js:4078
defn
这是Jaml ......
'main': new Mooml.Template(null, function(data) {
div({'class': 'lists container'},
div({
'class': 'sources',
'events': {
'click:relay(a)': function(event) {
event.preventDefault();
new Resource({
'url': this.get('href'),
'method': 'FRIENDS',
'query' : {
'source': this.dataset.source
},
'onSuccess': function(response) {
console.log(response);
//this.renderTemplate('friends', response.mv, this);
}.bind(this),
'onFailure': this.onFailure
}).send();
}.bind(this)
}
答案 0 :(得分:4)
添加var self = this
;在代码之前,然后在回调函数中使用self
而不是this
。
另请查看http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/和http://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/,详细了解this
的工作原理。