Quiero enviar el evento para poder ejecutar la función dentro del detector de eventos.
He intentado:
var event = new Event('change'); i.dispatchEvent(event);pero no funciono sin dar ningun error
let i = document.querySelector('#i'); i.querySelector('[value="7"]').selected = true; //dispatch event let ev = new Event("change"); i.dispatchEvent(ev); i.addEventListener('change', e=>{ alert('selected : '+e.target.value); }); <select id="i"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </select>Está enviando el evento antes de agregar el detector de eventos, por eso no funciona. Primero debe agregar un detector de eventos y luego enviar el evento:
let i = document.querySelector('#i'); i.querySelector('[value="7"]').selected = true; // Add event listener first i.addEventListener('change', e=>{ alert('selected : ' + e.target.value); }); // Dispatch event after event listener is added let ev = new Event("change"); i.dispatchEvent(ev); <select id="i"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </select>