Skip to content

Instantly share code, notes, and snippets.

@darthmaim
Created August 20, 2015 09:27
Show Gist options
  • Save darthmaim/724148f6ce87b49f55d8 to your computer and use it in GitHub Desktop.
Save darthmaim/724148f6ce87b49f55d8 to your computer and use it in GitHub Desktop.
Trigger native javascript event
function triggerNativeEvent( element, eventName ) {
// check if element is a jQuery object
if( element instanceof $ ) {
element = element[0];
}
// trigger event
if( element.dispatchEvent ) {
var event = document.createEvent( 'Events' );
event.initEvent( eventName, true, false );
element.dispatchEvent( event );
} else if( element.fireEvent ) {
element.fireEvent( 'on' + eventName );
} else if( element[ eventName ] ) {
element[ eventName ]();
} else if( element[ 'on' + eventName ] ) {
element[ 'on' + eventName ]();
}
}
@arniebradfo
Copy link

arniebradfo commented Sep 15, 2021

wow

So many React elements listen to the window resize event (via useEffect).
You can force them all to update by triggering a window resize with:

const event = document.createEvent( 'Event' );
event.initEvent( 'resize', true, false );
document.dispatchEvent( event );

This just saved me. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment