There are stuff like : File picker [2], dropdown [3], tip [4] for tooltips and many more.
1 : https://github.com/component
2 : https://github.com/component/file-picker
They're mainly for react, though other platforms have them (eg, I use 'ractive', from the guardian, which has its own component model).
Go check out npm, there are a while bunch of react components you can just pick up and use.
document.getElementById("that-element").addEventListener("change", function(e) {
// e.target.files
});
document.getElementById("that-element").click(); document.getElementById("that-element").click();
doesn't exist. You need to use something like /** Creates the click on the input */
const clickEvent = document.createEvent( "MouseEvents" );
clickEvent.initEvent( "click", true, false );
document.getElementById("that-element").dispatchEvent( clickEvent );
References :1 : https://developer.mozilla.org/en-US/docs/Web/API/EventTarget...
2 : http://stackoverflow.com/questions/6367339/trigger-a-button-...
EDIT ( sorry can't reply to you, because HN ) :
Relevant jQuery discussion
https://github.com/MediaCrush/MediaCrush/blob/master/scripts...
Here's the code in the jQuery library you linked to that does exactly this as well:
https://github.com/component/file-picker/blob/master/index.j...
The devil is in the details, although obviously your code works for any other clickable elements.
1 : https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement... 2 : http://stackoverflow.com/questions/210643/in-javascript-can-...