JSFiddle - React, Tailwind, and code Playground
HTML
<select>
<option></option>
</select>
JavaScript
$(document).on('mousedown', 'select', function (evt) {
if (!evt.isFake) {
var $el = $(evt.currentTarget);
var event = document.createEvent('MouseEvents');
try {
event.initMouseEvent('mousedown', false, true);
event.isFake = 1;
}
catch (er){
// FireFox: Not enough arguments to MouseEvent.initMouseEvent.
}
$el.html('<option disabled>Loading...</option>')
setTimeout(function () {
$el.html('<option>foo</option><option>bar</option>');
$el[0].dispatchEvent(event);
}, 500);
event.isFake && evt.preventDefault();
}
});