我想创建一个自定义粘贴事件,它会触发输入(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() {...
那么,我做错了什么?
答案 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(){ ...
这样就可以捕获两个本机浏览器事件,而无需定义对它们进行别名的新事件。从我能说的话看起来足够灵活