Javascript绑定";这";事件
下面是我在javascript中将“this”绑定到单击事件时遇到的一个错误。js的格式是Jaml/Mooml,有些人可能不熟悉,但我向您保证语法是正确的。我一直以同样的方式将“this”绑定到许多事件,这是我第一次看到这个错误,所以我希望一些mootools、jaml或javascript专家能够从下面的错误和代码中得出解决方案Javascript绑定";这";事件,javascript,mootools,jaml,Javascript,Mootools,Jaml,下面是我在javascript中将“this”绑定到单击事件时遇到的一个错误。js的格式是Jaml/Mooml,有些人可能不熟悉,但我向您保证语法是正确的。我一直以同样的方式将“this”绑定到许多事件,这是我第一次看到这个错误,所以我希望一些mootools、jaml或javascript专家能够从下面的错误和代码中得出解决方案 Uncaught TypeError: Object [object Object] has no method 'get' Mooml.engine.tags.di
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
这是果酱
'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)
}
添加
var self=this
;然后在回调函数中使用self
而不是this
还可以查看并进一步了解
此
的工作原理。添加var self=this
;然后在回调函数中使用self
而不是this
另外,还可以查看并进一步了解
这个的工作原理。您说语法是正确的,但是否缺少一个结束语)代码>?此
在主功能中引用了什么?我的意思是,如果将console.log(this)
放在第二个div()
调用(第3行)的前面,它会给你什么?你说语法是正确的,但你不是缺少一个结束语)代码>?此
在主功能中引用了什么?我的意思是,如果您将console.log(this)
放在第二个div()
调用(第3行)之前,它会给您带来什么?谢谢,这让我更仔细地查看了我的资源调用。我找到了解决办法!更改此选项。转到event.target。get@Adgezaza你能与我们分享解决方案(或问题所在)吗?在接下来的7个小时内,你无法回答我自己的问题。但是刚刚添加了上面的注释。@Adgezaza使用event.target.get
是好的和聪明的,但是这并没有告诉我们为什么你的代码不起作用。。。可能this
没有引用在div()
调用中创建的
,因此缺少的引用是使用.bind(this)
进行“传播”的。这就是我要求您检查代码第一行中的console.log(this)
。@lorenzo-s这是指前端javascript控制器,它是我构建的类的父类,其中包含一系列帮助函数,如mooml类中的renderTemplate。谢谢,这让我更仔细地查看了我的资源调用。我找到了解决办法!更改此选项。转到event.target。get@Adgezaza你能与我们分享解决方案(或问题所在)吗?在接下来的7个小时内,你无法回答我自己的问题。但是刚刚添加了上面的注释。@Adgezaza使用event.target.get
是好的和聪明的,但是这并没有告诉我们为什么你的代码不起作用。。。可能this
没有引用在div()
调用中创建的
,因此缺少的引用是使用.bind(this)
进行“传播”的。这就是我要求您检查代码第一行中的console.log(this)
。@lorenzo-s这是指前端javascript控制器,它是我构建的类的父类,其中包含一系列帮助函数,如mooml类中的renderTemplate。