2009-09-29 72 views
1

我想創建一個自定義粘貼事件,它將觸發輸入(FF)或onbeforepaste(IE)。我已經閱讀了關於在mootools中創建自定義事件的幾乎所有內容,但事件不會在任何瀏覽器中被觸發。擴展mootools Element.Events

擴展(接過文檔和 '鼠標滾輪' 事件作爲參考):

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

電話:

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

當我使用非MooTools的方式,它工作正常(FF ):

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

那麼,我做錯了什麼?

回答

0

爲什麼不只是做

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

這樣既原生瀏覽器事件沒有界定aliasses他們一個新的事件捕獲。似乎從我可以告訴

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; 
    } 
};