Estoy tratando de llamar a openFormPreview(e), que es una función asíncrona, desde un evento onclick. Está definido pero la consola sigue dándome el error:
Uncaught ReferenceError: openFormPreview is not definedaquí está el código
async function openFormPreview(element) { //Do some works //Get the element console.log(element) const dcid = element.getAttribute("data-concern-id"); //Set data } function presentData(doc) { //Some other codes let a = document.createElement("div"); a.classList.add("concern-item", "dt-cont-surface"); a.setAttribute("data-concern-id", doc.id); a.setAttribute('onclick', 'openFormPreview(this)'); //More codes } <div class="concern-item dt-cont-surface" data-concern-id="jbTFRy0SFxiHRD29NiL3" onclick="openFormPreview(this)"><span class="cl-fname">First Name</span> <span class="cl-cs"><span class="cl-c">12</span> - <span class="cl-s">1A</span></span><span class="cl-cid">jbTFRy0SFxiHRD29NiL3</span></div>Ambos están en el mismo archivo js y están vinculados correctamente con el archivo HTML.
La cadena que está configurando como el atributo onclick se evalúa en un ámbito donde openFormPreview no está definido. (Tenga en cuenta que su [mcve] se ha hecho demasiado mínimo, por lo que no muestra los diferentes ámbitos y, por lo tanto, en realidad no reproduce el problema).
No utilice el atributo onclick . Utilice addEventListener en su lugar. Eso usará el alcance actual.
a.addEventListener('click', event => openFormPreview(event.currentTarget));