Javascript 将mooRainbow转换为mootools 1.4.4时发生bindWithEvent错误

Javascript 将mooRainbow转换为mootools 1.4.4时发生bindWithEvent错误,javascript,events,mootools,Javascript,Events,Mootools,我试图让mooRainbow 1.2b()使用mootools 1.4.4,但我遇到了一个似乎找不到答案的错误 此节中会引发错误。。。 这是抛出的错误。。。 问题似乎与这里的问题相似,但答案与我的背景无关,我不确定这是否是同一个问题。好久不说话了,伙计(这里是尾声)。回到IRC 你真的需要看看FUNC本身。通常情况下,它们并不是真正的最优,并且依赖太多的论证和设置 不推荐使用的bindWithEvent的可能解决方法可以是 1替换此。。。 。。。比如: el.addEvents({

我试图让mooRainbow 1.2b()使用mootools 1.4.4,但我遇到了一个似乎找不到答案的错误

此节中会引发错误。。。



这是抛出的错误。。。 问题似乎与这里的问题相似,但答案与我的背景无关,我不确定这是否是同一个问题。

好久不说话了,伙计(这里是尾声)。回到IRC

你真的需要看看FUNC本身。通常情况下,它们并不是真正的最优,并且依赖太多的论证和设置

不推荐使用的bindWithEvent的可能解决方法可以是

1替换此。。。 。。。比如:

el.addEvents({
    keyup: this.eventKeyup.bind(this),
    keydown: this.eventKeydown.bind(this)
});
然后在2事件函数中,参数1将是事件<代码>el==event.target-这是一种模式

2咖喱ftw anon函数中的代理

var self = this;
el.addEvent("keyup", function(e) {
    self.eventKeyup(e, this);    
});

3.等等。天空是极限。谢谢!我肯定应该回到IRC,我尝试了第一个选项,它成功了,这就是我用自己的代码处理事件的方式,我只是不知道bindWithEvent发生了什么:)
    }, this);
    [this.element, this.layout].each(function (el)
    {
        el.addEvents({
            'click': function (e) { new Event(e).stop(); },
            'keyup': function (e)
            {
                e = new Event(e);
                if (e.key == 'esc' && this.visible) this.hide(this.layout);
            }.bind(this)
        }, this);
    }, this);
Uncaught TypeError: Object function (){
if (method.$protected && this.$caller == null) 
throw new Error('The method "' + key + '" cannot be called.');
var caller = this.caller, current = this.$caller;
this.caller = current; this.$caller = wrapper;
var result = method.apply(this, arguments);
this.$caller = current; this.caller = caller;
return result;
} has no method 'bindWithEvent'
el.addEvent('keydown', this.eventKeydown.bindWithEvent(this, el));
el.addEvent('keyup', this.eventKeyup.bindWithEvent(this, el));
el.addEvents({
    keyup: this.eventKeyup.bind(this),
    keydown: this.eventKeydown.bind(this)
});
var self = this;
el.addEvent("keyup", function(e) {
    self.eventKeyup(e, this);    
});