扩展mootools Element.Events

时间:2009-09-29 19:32:50

标签: events mootools

我想创建一个自定义粘贴事件,它会触发输入(FF)或onbeforepaste(IE)。我已经阅读了很多关于在mootools中创建自定义事件的内容,但事件并没有在任何浏览器中被触发。

扩展名(将文档和'mousewheel'事件作为参考):

Element.Events.paste = {
 base: (Browser.Engine.trident) ? 'beforepaste' : 'input'
};

呼叫:

this.addEvent('paste', function() {... // 'this' is a textarea

当我使用非mootools方式(FF)时它工作正常:

this.addEventListener('input', function() {...

那么,我做错了什么?

2 个答案:

答案 0 :(得分:1)

我在MooTools Users group上找到了这段代码:

$extend(Element.NativeEvents, {
    'paste': 2, 'input': 2
});
Element.Events.paste = {
    base : (Browser.Engine.presto || (Browser.Engine.gecko && Browser.Engine.version < 19))? 'input': 'paste',
    condition: function(e){
        this.fireEvent('paste', e, 1);
        return false;
    }
};

答案 1 :(得分:0)

为什么不做呢

var eventType = Browser.Engine.trident ? 'beforepaste' : 'input';
this.addEvent(eventType, function(){ ...

这样就可以捕获两个本机浏览器事件,而无需定义对它们进行别名的新事件。从我能说的话看起来足够灵活