好吧所以我为我的网站建立了一个使用mootools的动态内容交换系统,我遇到了一个问题。当它从服务器中提取新内容时,它还会获得一个由类型函数执行的代码片段
setContent: function(content) {
var self = this;
window.history.pushState({x: 0}, "x", content[0].toLowerCase());
var mainField = $('meat');
mainField.set('html', content[1]);
if(content[2] != false) {
var functionn = Function(content[2]);
functionn();
}
},
现在在这种情况下我试图在类中执行一个方法:
addLink: function(item) {
var self = this;
var object = $(item);
self.menus.include(item);
object.addEvent('click', function(event) {
event.stop();
});
},
通过将其发送到要执行的set content方法:
self.addLink('#order');
现在当我试一试时,我得到了这个错误:
Uncaught TypeError: Object [object Window] has no method 'addLink'
答案 0 :(得分:0)
我猜self
是指window
而不是您的班级,请参阅http://mootools.net/docs/core/Types/Function#Function:bind上的示例。使用bind()
将this
绑定到您的班级,然后在服务器回复中使用this
。
if(content[2] != false) {
var functionn = Function(content[2]);
var functionn_bound = functionn.bind(this);
functionn_bound();
}