Siempre que sea posible, prefiero llamar a la función en lugar de enviar un evento. Esto funciona bien si tiene control sobre el código que desea ejecutar, pero vea a continuación los casos en los que no posee el código.
window.onresize = doALoadOfStuff;
function doALoadOfStuff() {
//do a load of stuff
}
En este ejemplo, puede llamar a la doALoadOfStuff
función sin enviar un evento.
En sus navegadores modernos, puede activar el evento usando:
window.dispatchEvent(new Event('resize'));
Esto no funciona en Internet Explorer, donde tendrá que hacer la mano dura:
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
jQuery tiene el trigger
método , que funciona así:
$(window).trigger('resize');
Y tiene la advertencia:
Aunque .trigger () simula una activación de evento, completa con un objeto de evento sintetizado, no replica perfectamente un evento natural.
También puede simular eventos en un elemento específico ...
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);
}