Ben şahsen elle oluşturulmuş olayları işlemek için bir sarmalayıcı işlevi kullanıyorum. Aşağıdaki kod, tüm Event
arabirimlere statik bir yöntem ekler (ile biten tüm global değişkenler Event
bir Etkinlik arabirimidir) ve element.dispatchEvent(MouseEvent.create('click'));
IE9 + 'da olduğu gibi işlevleri çağırmanıza izin verir .
(function eventCreatorWrapper(eventClassNames){
eventClassNames.forEach(function(eventClassName){
window[eventClassName].createEvent = function(type,bubbles,cancelable){
var evt
try{
evt = new window[eventClassName](type,{
bubbles: bubbles,
cancelable: cancelable
});
} catch (e){
evt = document.createEvent(eventClassName);
evt.initEvent(type,bubbles,cancelable);
} finally {
return evt;
}
}
});
}(function(root){
return Object.getOwnPropertyNames(root).filter(function(propertyName){
return /Event$/.test(propertyName)
});
}(window)));
DÜZENLEME: Tüm Event
arabirimleri bulma işlevi, yalnızca ihtiyacınız olan Etkinlik arabirimlerini değiştirmek için bir dizi ile değiştirilebilir ( ['Event', 'MouseEvent', 'KeyboardEvent', 'UIEvent' /*, etc... */]
).