Event.Keys去了哪里?

时间:2011-10-05 15:14:17

标签: events keyboard mootools

我是否遗漏了一些东西,或者自1.4.0以来,Event.Keys对象已经从mootools中消失了?

我无法获得某个键的实际值或将其与当前按下的键进行比较:

var modifiers = {
    previous: Event.Keys.left,
    next: Event.Keys.right
};
switch (evt.code){
    case Event.Keys.backspace:
        // Do some stuff;
        break;
    case Event.Keys.delete:
        // Do some other stuff
        break;
}

此对象是否有可能移动到另一个对象或属性?

1 个答案:

答案 0 :(得分:1)

ERM。在新的API更改下,Event现在称为DOMEvent,MooTools Type,而不是类。此外,事件定义现在在密钥数组中的闭包后面是私有的。

https://github.com/mootools/mootools-core/blob/master/Source/Types/DOMEvent.js

有一个API可以使用它:

DOMEvent.defineKeys({
    38: "up"
});

,遗憾的是 - 是一种方式:你没有Event.Keys的吸气剂,你也无法通过API设置它。

您可以根据来源重新定义它们,也可以存储它们的含义。你也可以重构它来刺穿它。

您还可以执行伪事件,例如keydown:left

DOMEvent.definePseudo('left', function(split, fn, args){
    // args[0] is the Event instance
    if(args[0].key == 'left') fn.apply(this, args);
});


document.getElement("textarea").addEvent("keydown:left", function(e) {
    alert("left pressed!");
});

只有按下textarea内的左箭头,上面的警告才会触发。希望这会有所帮助...