Dans la mesure du possible, je préfère appeler la fonction plutôt que d'envoyer un événement. Cela fonctionne bien si vous avez le contrôle sur le code que vous souhaitez exécuter, mais voyez ci-dessous les cas où vous ne possédez pas le code.
window.onresize = doALoadOfStuff;
function doALoadOfStuff() {
//do a load of stuff
}
Dans cet exemple, vous pouvez appeler la doALoadOfStuff
fonction sans envoyer d'événement.
Dans vos navigateurs modernes, vous pouvez déclencher l'événement en utilisant:
window.dispatchEvent(new Event('resize'));
Cela ne fonctionne pas dans Internet Explorer, où vous devrez faire le long terme:
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
jQuery a la trigger
méthode , qui fonctionne comme ceci:
$(window).trigger('resize');
Et a la mise en garde:
Bien que .trigger () simule une activation d'événement, avec un objet d'événement synthétisé, il ne reproduit pas parfaitement un événement naturel.
Vous pouvez également simuler des événements sur un élément spécifique ...
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);
}